Java 8 Java8 eclipse编译器错误
我发现java8有一个奇怪的问题: 在类方法中,我有以下代码:Java 8 Java8 eclipse编译器错误,java-8,Java 8,我发现java8有一个奇怪的问题: 在类方法中,我有以下代码: int id; ... new Key<Integer>(id) 执行时。。。!!!!原因:编译器忽略用整数替换int 希望这能帮助像我这样的家伙,他们对这样的运行时验证非常失望,他们的程序只是从java7传递到java8 版本:Luna发行版(4.4.0) 构建id:20140612-0600 Java版本“1.8.0_25” Java(TM)SE运行时环境(build 1.8.0_25-b17) Java HotS
int id;
...
new Key<Integer>(id)
执行时。。。!!!!原因:编译器忽略用整数替换int
希望这能帮助像我这样的家伙,他们对这样的运行时验证非常失望,他们的程序只是从java7传递到java8
版本:Luna发行版(4.4.0)
构建id:20140612-0600
Java版本“1.8.0_25”
Java(TM)SE运行时环境(build 1.8.0_25-b17)
Java HotSpot(TM)64位服务器虚拟机(构建25.25-b02,混合模式)
增加
下面是一个完整的简单示例:
package bug;
public class Bug {
public static void main(String[] args) {
Bug.class.getConstructors();
System.out.println("test ok");
}
public Bug() {
BugCondition("", new Key<Integer>(1));
//BugCondition("", new Key<>(1));
}
public static final <C extends Object> void BugCondition(C test, Key<?> key) {
}
public class Key<K> {
public Key(K value) {
}
}
}
包错误;
公共类错误{
公共静态void main(字符串[]args){
Bug.class.getConstructors();
System.out.println(“测试正常”);
}
公共Bug(){
BugCondition(“,新键(1));
//BugCondition(“,新键(1));
}
公共静态最终无效状态(C测试,键){
}
公开类密钥{
公钥(K值){
}
}
}
问题似乎来自泛型(用字符串替换C):
公共静态最终无效状态(C测试,键){
}
您的示例可以很好地编译。我正在使用以下构建:
Version: Mars Release Candidate 2 (4.5.0RC2)
Build id: 20150528-0540
我怀疑这个问题在这段时间内已经得到了解决(与许多其他Eclipse/Java8编译问题一样)密钥类及其构造函数的签名是什么?请查看JVM抛出
VerifyError
的原因,请显示一个复制该问题的完整且可编译的示例。当然,但是我花了很多时间来发现这个问题,当然把它作为一个简单的例子来提取并不容易……您的代码在这里工作得很好,但我使用的是javac,而不是Eclipse编译器(它看起来越来越有缺陷)。Java版本:Java(TM)SE运行时环境(构建1.8.0-b132)Java热点(TM)64位服务器虚拟机(构建25.0-b70,混合模式)
package bug;
public class Bug {
public static void main(String[] args) {
Bug.class.getConstructors();
System.out.println("test ok");
}
public Bug() {
BugCondition("", new Key<Integer>(1));
//BugCondition("", new Key<>(1));
}
public static final <C extends Object> void BugCondition(C test, Key<?> key) {
}
public class Key<K> {
public Key(K value) {
}
}
}
public static final <C extends Object> void BugCondition(C test, Key<?> key) {
}
Version: Mars Release Candidate 2 (4.5.0RC2)
Build id: 20150528-0540