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

Java编译器的优化【代码】

public class Notice {public static void main(String[] args) {// 右侧20是一个int类型,但没有超过左侧数值范围,就是正确的// int --> byte 不是自动类型转换byte num1 = 20;System.out.println(num1); // 20// 错误:不兼容的类型: 从int转换到byte可能会有损失// byte num2 = 128;// System.out.println(num2);char zifu = 65;System.out.println(zifu); // A} }对于byte/short/char三种数据类型,如果右侧没有超过左侧数值范...

如何在没有编译器警告的情况下使用泛型将java.lang.Class类型的变量初始化为Collection?【代码】

我需要初始化类型为Class< Set< String>>的变量. 当我使用Set.class时,它返回Class< Set>的变量.Class<Set> clazz = Set.class;当我尝试Class<Set<String>> clazz = Set<String>.class;我有一个编译错误.解决方法:首先,您需要了解,在运行时,只有一个Class对象代表Set接口.对于Set< String>,Set< Integer>等没有单独的Class对象.因此,大多数情况下,您的Class< Set< String>在运行时可以做的事情就是指向这个Set类对象,问题是这样做有...

Java-JDK编译器错误【代码】

在有人大喊EOL’ed JDK之前,我想指出,我的问题不在于如何编译以下内容.这里有一个真正的问题,而不是关于JDK 1.5是否已停产…… 在JDK 1.5之下,直到1.5.0_22(我可以找到的最后一个)在我的系统上产生了一个编译器错误:private Object[] boozinga() {boolean b = Math.abs(42) > 0;Object[] res = new Object[1];res[0] = b ? new int[1] : new String[1];return res; }更改Math.abs(42)> 0到true允许编译. 将三元“赋值”更改为if /...

深入理解java虚拟机(15):编译器介绍【图】

前端编译器,把java文件变成class文件字节码,sun的javac,Eclipse JDT中的编译插件ECJ。 JIT,just it time Hotswap的c1,c2把字节码转换成机器码,及时编译器。 AOT编译器:GCJ,JET把java文件变成机器码,静态提前编译器。 虚拟机团队把设计团队把对性能的优化集中到了后端的及时编译器,让许多不是java语言生成的class类文件也同样能享受到编译器优化带来的好处,很多新生的java语法特性是靠语法糖实现的,而不是底层虚拟机改进...

java-自定义JAXB(xjc)绑定编译器以实例化具有空列表的列表成员【代码】

是否可以使用Java XML绑定编译器(xjc)生成用空列表而不是null实例化列表成员的代码? 例: XSD文件FooBar.xsd:<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://foo.bar"targetNamespace="http://foo.bar" version="1.0"><xs:complexType name="FooBar"><xs:sequence><xs:element name="entry" type="xs:string"maxOccurs="unbounded" minOccurs="0" /></xs:se...

Java-编译器错误-类中定义的枚举不能用于同一类中的泛型替换【代码】

我定义了一个名为IReport的通用接口,该接口采用通用参数类型Tpublic interface IReport<T> {public enum ReportType {YEARLY, MONTHLY, WEEKLY}public String getName();public ReportType getType();public Map<T, List<Cost>> getResults();}一个类正在实现此接口public class WeeklyReport implements IReport<Days> {public enum Days {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}@Overridepublic Strin...

使用Google Closure编译器Java API

我想使用Java的Google Closure-Compiler. 我从Maven存储库(com.google.javascript.jscomp)下载了编译器,但是找不到有关如何使用它的任何文档.我不想使用命令行界面. 仍支持这种用法吗?解决方法:Closure-compiler FAQ具有非常基本的概述.该项目确实支持Java API的使用,但是没有官方文档. 大约有third party blog posts.

Java编译器覆盖和处理源文件【代码】

我有一个带有单个main方法的简短Java文件.它从第三方库(我将称为第三方库)导入.我跑javac -classpath "../thirdpartylib/lib/*" MyClass.java在命令行中.我得到以下命令行输出:warning: Supported source version 'RELEASE_6' from annotation processor 'org.mangosdk.spi.processor.SpiProcessor' less than -source '1.8' MyClass.java:14: error: unreported exception Exception; must be caught or declared to be thrown d...

Eclipse将编译器设置重置为Java 1.5【代码】

我刚刚为一个Maven项目克隆了一个git存储库,然后将该项目作为一个Maven项目导入到STS中. 我将项目和子模块设置为Java 1.8项目,然后运行了Maven更新,然后注意到所有Java 1.5编译器设置似乎都已重新应用. 我无法弄清楚为什么eclipse会重置它,即使我取消选中“启用项目特定设置”,它仍然会恢复为选中状态,并且Java 5是默认设置. 我读了一篇有关在maven-compiler-plugin配置中设置版本的文章,但是该项目目前在任何pom文件中都没有对该插...

Java编译器会为字符串混淆生成效率低下的代码吗?【代码】

我认为这是隐藏字符串的最有效方法new StringBuilder(s1.length() + s2.length() + s3.length()).append(s1).append(s2).append(s3).toString();这里创建的StringBuilder缓冲区的容量足以容纳其中的所有字符串,否则StringBuilder可能需要将缓冲区扩展最多3倍. 但是当我编译/反编译String s4 = s1 + s2 + s3;我得到了由javac(1.7.0_03)构建的.class中的实际代码为String s4 = (new StringBuilder(String.valueOf(s1))).append(s2).a...

Java-交叉编译器与JVM

我想知道JVM的用途.如果创建JVM是为了允许平台独立的可执行代码,那么能够产生平台独立的可执行代码的交叉编译器是否可以代替JVM? 有关交叉编译器的信息来自:http://en.wikipedia.org/wiki/Cross_compiler解决方法:字节码格式和JVM的优点是能够基于在实际运行期间获取的性能分析数据在运行时优化代码.换句话说,没有静态编译的本机代码是一个胜利. 运行时编译优点的一个特别有趣的示例是单态调用站点:对于代码中调用实例方法的每个...

java-在Kotlin项目中使用@Value注释时出现编译器警告【代码】

在后期初始化中,是否可以使用Kotlin语言中的任何类型代替java.lang.Integer,以便不会收到编译器警告? 假设我有一个像这样的课程:class SomeClass {@Value(#{config['poolCapacity']?:'5000'})lateinit var somePool: Integer }我不能使用Kotlin的Int类型,因为它是原始类型,而lazeint不接受它. 如果我坚持使用java.lang.Integer,它可以正常工作,但是我得到了这种编译器警告:SomeClass.kt: (20, 24): This class shouldn’t be us...

Eclipse Java-将编译器设置为Java 6,但仍然具有Java 7方法/库并且没有任何抱怨

对于一个项目,我必须使用Java 6,因此我将eclipse编译器设置设置为1.6(JDK遵从级别). 但是,我包含了java.nio.file.Files这是一个Java 7库,并且没有收到任何投诉.我可以确保将我的项目特定设置设置为1.6.我什至将整个工作区更改为1.6,并进行了重建,但仍然没有任何抱怨.我的同事们看到有关java.nio.files的投诉. 是否因为我有一个jdk7可以识别java.nio.file.Files(即使设置为1.6 spcs)?解决方法:这是两件事: >遵从性级别与编写Java代...

java-为什么编译器没有抛出“ No return statement”错误?【代码】

我试图在Leetcode中解决question,以下讨论的解决方案之一是:public class Solve {public static void main(String[] args) {String haystack = "mississippi";String needle = "issip";System.out.println(strStr(haystack,needle)) ;}public static int strStr(String haystack, String needle) {for (int i = 0; ; i++) {for (int j = 0; ; j++) {if (j == needle.length()) return i;if (i + j == haystack.length()) return -...

java-从命令行传递Maven编译器选项【代码】

我在连续集成服务器上设置了几个项目,其中一些我无权将源代码更改为该服务器,这是一个Linux机器,我遇到了一个问题,其中maven编码需要更改为UTF8.以便可以在盒子上进行编译.由于我无权修改pom文件,因此我想知道是否可以将编译器选项作为命令行参数传递?该项目使用Maven编译器2.0,我尝试传递-Denconding = UTF8失败.解决方法:您可以使用Maven属性“ project.build.sourceEncoding”. 所以类似的东西mvn clean install -Dproject.bui...