【为什么java编译器不报告Intellij中多播表达式的未经检查的强制转换警告?】教程文章相关的互联网学习教程文章

java – GWT编译器优化:什么时候安全?【代码】

以下编译器优化何时安全/合理添加:-XdisableClassMetaData -XdisableCastChecking compiler.stackMode compiler.enum.obfuscate.names CssResource.obfuscationPrefix CompilerParameters.gwt.xml.*有些只在Dev(或Prod)模式下有意义吗?有任何现有的安全漏洞吗?解决方法:-XdisableClassMetaData – 当您不使用Object.getClass()方法时是安全的. -XdisableCastChecking – 我个人从不使用它.但是如果你根本不使用多态,你可以试试...

在Java中执行类型转换时编译器错误【代码】

我们在Java中看到以下表达式.int temp = -254; Integer temp2 = (Integer) temp; // compiles because of autoboxingInteger temp3 = (Integer) -254; // doesn't compile - illegal start of type. Integer temp4 = (Integer) 10-254; // compilesInteger temp5 = (Integer) (int) -254; // compiles Integer temp6 = -254; // compiles Integer temp7 = (int) -254; // compiles在上...

从Java运行TypeScript编译器【代码】

我试图从我的Java应用程序运行TypeScript编译器.首先,我想弄清楚,我是否可以在没有Node.js的情况下从命令行运行编译器:$jsc tsc.js但这样我就不会得到任何错误,也没有帮助.$jsc tsc.js myscript.ts会让我无处可去. 很容易直接从java运行js代码(我希望以这种方式运行编译器),但是可以在没有node.js的情况下运行TypeScript编译器吗? 编辑: 我确认与rhino相同的行为.解决方法:查看源代码,tsc命令调用JS脚本tsc.js,它有2个后端:Nod...

为什么这个Java代码有效?编译器不抱怨关闭【代码】

我的DialogFragment包含一个-initially invisible-OK按钮和一个可点击项的ListView.单击任何ListView项目时,我将按钮的可见性设置为VISIBLE. 这是通过匿名的OnItemClickListener完成的.下面的代码有效,但我不明白为什么.由于Java不支持闭包,我希望编译器抱怨按钮不是最终的. 这不是典型的封闭案例吗?为什么下面的代码不会产生编译器错误? 谢谢public class AlternativeRoomsDialog extends DialogFragment {private Button okBut...

java – IntelliJ IDEA中的代码标记有编译器错误,它在Eclipse中工作正常【代码】

我正在尝试设置我的IntelliJ工作区以在eclipse项目上进行开发.我遇到的一件事情令人困惑:Error:(24, 8) java: SomeClass.java:24: getHeader(java.lang.String) in org.springframework.mock.web.MockHttpServletResponse cannot implement getHeader(java.lang.String) in javax.servlet.http.HttpServletResponse; attempting to use incompatible return type found : java.lang.Object required: java.lang.String问题是以下...

Javassist与比赛Java编译器API

在我正在进行的项目中,我需要在运行时生成Java类.我稍后在使用这些类时还需要避免使用反射. 我一直在寻找目前的解决方案,并找到了Javassist和Java 6 Java Compiler API. 我很困惑: > Javassist用来生成什么班?它是否使用反射或什么?>我编写了一些测试并找到了它很容易生成字节码从源代码,然后加载生成的字节码中的类.使用有什么好处Javassist对此解决方案?解决方法:Javassist有几个选项,一个是一个小的包含编译器,允许您将Java...

当我在Java中迭代Non-Generics Map时,编译器会抱怨【代码】

当我在Java中迭代非泛型地图时,我遇到了问题Map map=new HashMap(); for (Map.Entry entry:map.entrySet()){}但编译器抱怨并说“类型不匹配:无法从元素类型Object转换为Map.Entry”当我将Map类型更改为Generics时,它可以工作Map<Object,Object> map=new HashMap<Object,Object>(); for (Map.Entry entry:map.entrySet()){}这让我很困惑,有谁知道是什么原因?提前致谢.解决方法:当你使用原始类型时,就像你在这里使用Map一样,所有泛...

java – AspectJ – 为什么使用注释而不是ajc编译器?

我们可以使用@AspectJ注释样式来定义方面,以及AspectJ Java扩展语言,这需要我们使用ajc编译器. 人们想要使用注释样式而不是ajc的原因是什么?在我看来,通过使用注释样式放弃了很多功能,但除了不必使用ajc之外没有太多(如果有的话)获得(不得不使用ajc这么糟糕?) 有人可以请教我这个话题吗?解决方法:两种样式(.aj和@AspectJ)都具有另一种不能做的功能. 请参阅这篇文章,了解注释可以做的事情,声明性的AspectJ不能:What is the Aspe...

是Java Bootstrapped的编译器吗?

是Java Bootstrapped的编译器吗? 如果它是自举的,那么java的第一个编译器是如何编写的?解决方法:这是一个有趣的问题.来自Oracle的当前javac编译器,它只是许多(1)中的一个编译器,实际上是用Java编写的,这意味着,是的,您可以认为它是自举的,假设您的定义意味着“已经被引导以便它现在可以自行编译” (2). 虚拟机本身主要是从内存中写入C,因此,在编译器被引导时,构建JRE需要C编译器. (1)GCJ是另一个,它碰巧是用C语言编写的,所以它取...

编译器是否存在差异 – java【代码】

在相同版本的代码优化中是否存在任何差异:Oracle Java编译器Apache Java编译器IBM Java编译器OpenJDK Java编译器.如果有什么代码可以演示不同的优化?或者他们使用相同的编译器?如果没有已知的优化差异,那么我在哪里可以找到有关如何针对不同优化测试编译器的资源?解决方法:Is there any differences in code optimization done by same versions of: Oracle Java compiler Apache Java compiler IBM Java compiler OpenJDK Jav...

Java编译器是否优化了流过滤?【代码】

我们有一个案例:x.stream().filter(X::isFlag).filter(this::isOtherFlag).reduce(...)它与这个不同吗?x.stream().filter(predicate(X::isFlag).and(this::isOtherFlag)).reduce(...)解决方法:从功能上讲,这两个陈述是等价的.但是,请考虑以下两个代码块及其各自的字节码:public static void main(String[] args) {List<String> list = List.of("Seven", "Eight", "Nine");list.stream().filter(s -> s.length() >= 5).filter(s ...

如何在定位Java 6和使用JDK 7编译器时抑制引导类路径警告

我们的开源应用程序面向Java 6平台,因此我们使用-source 1.6和-target 1.6选项进行编译,但在使用JDK 7时,我们会收到此警告消息,例如: 例如:$javac -source 1.6 -target 1.6 test.java 警告:[options] bootstrap类路径未与-source 1.6一起设置 我们可以通过为我们的机器使用-bootclasspath解决问题,但是我们将应用程序作为源tarball / zip分发,我们的用户在他们的机器上构建它. 此外,我们不希望要求用户下载JDK6,因此他们不会收到...

java – 针对通用varargs的编译器警告的解决方案【代码】

这个blog的一个难题.类似于SO1445233. 给出以下源列表,解释为什么编译器在调用list方法时产生警告,并提供解除删除警告的解决方案而不诉诸@SuppressWarnings注释.public class JavaLanguagePuzzle3 {public static void main(String[] args) {list("1", 2, new BigDecimal("3.5"));} private static <T> List<T> list(T... items) {return Arrays.asList(items);} }警告:Type safety: A generic array of Object&Serializable&Com...

java – JVM中的JIT编译器究竟是什么?

我试图理解Java源代码是如何执行的,我对JVM内部的JIT编译器实际上是什么感到困惑.首先,让我告诉您我是如何理解从Java源代码到在计算机上执行机器代码的过程.也许,我误解了导致混乱的过程中的某些事情. 步骤: >源代码被编译成字节码(.class文件)>类文件被加载到JVM(在RAM中)>验证字节码,然后由JIT编译器处理> JIT编译器的输出是准备好执行的机器代码 现在,根据Wikipedia article on JVM,更具体地说是“字节码解释器和即时编译器”部...

2018-01-03 烂尾工程: Java实现的汇编语言编译器【图】

在半年前的中文编程的尝试历程小记中简单介绍了这一项目. 由于短期内估计不会继续进行, 而且这个项目好像是至今个人在中文命名实践中的代码量最大的一个项目, 谨在此作一小结. 最新的源码库在program-in-chinese/assembler-in-chinese-experiment. 大致设计草图以mov rax 0x1122334455667788指令示例如下:当前进度仅支持两个操作数的部分指令, 第二个操作数仅支持立即数 第一个操作数可以是寄存器,或者简单的内存寻址,如[0] 支持强...