[英]If a method returns an anonymous class, is it returning a subclass or an inner class?
[英]Netbeans fails to find main class when creating anonymous subclass of inner class of anonymous subclass
当我尝试在其包含类的包含类的匿名子类的初始化中创建一个新的匿名Action子类时,Netbeans在运行时突然找不到主类,尽管能够进行清理+构建没有问题,并且可以与此运行代码已注释掉。
代码结构:
主包装:
在一个简单的类中复制:
package tests;
public class ClassTester {
public static void main(String[] args) {
ClassTester tester = new ClassTester();
tester.run();
}
public void run() {
final Inner1 A = new Inner1() {
{
B = this.new Inner2() {
@Override
public void run() {
System.out.println("Hello, world!");
}
};
}
};
A.B.run();
}
public class Inner1 {
public Inner2 B;
public abstract class Inner2 implements Runnable {
}
}
}
-->
Error: Could not find or load main class tests.ClassTester
Java Result: 1
有趣的是,-XX:+ PrintCompilation揭示了崩溃之前运行的某些内容:
50 1 java.lang.String::hashCode (55 bytes)
50 2 java.lang.String::charAt (29 bytes)
Error: Could not find or load main class tests.ClassTester
Java Result: 1
产品版本:NetBeans IDE 7.3.1(Build 201306052037)Java:1.7.0_25; Java HotSpot(TM)64位服务器VM 23.25-b01运行时:Java(TM)SE Runtime Environment 1.7.0_25-b17系统:在amd64上运行的Windows 7版本6.1; cp1252; zh_(nb)
清理,构建和重新启动Netbeans尚未解决问题。 这是可修复的还是Netbeans中的错误?
我能够在NetBeans 7.3.1中重现该问题。 该问题似乎与Bug#224770有关 。 修复摘要为#224770:使带有封闭表达式的new处理更类似于vanilla javac,同时保留API的正确输出。
您有两个选择。
继续使用NetBeans 7.3,不要使用“ this.new”。 将第11行更改为:
B =新的Inner2(){
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.