标签:java inner-classes netbeans anonymous-class anonymous-inner-class
当我尝试在其包含类的包含类的匿名子类的初始化内创建一个新的匿名Action子类时,Netbeans突然无法在运行时找到主类,尽管能够毫无问题地清理构建并运行此代码评论说.
代码结构:
主要包装:
>主类< - 目前正在查看此文件
> public void run(…)(在main(String [] args中调用))
>演员a =新演员(){
> Script script = new Script();
> {(演员实例启动代码)
> script.new Action(0){…}导致破损
>包装演员
>公共抽象类Actor
>公共类脚本
>公共抽象类Action
复制在一个简单的类中:
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运行时环境1.7.0_25-b17
系统:在amd64上运行的Windows 7版本6.1; CP1252; en_US(nb)
清理,构建和重新启动Netbeans还没有解决问题.这是可修复的还是Netbeans中的错误?
解决方法:
我能够在NetBeans 7.3.1中重现该问题.该问题似乎与bug #224770有关.修复摘要为#224770: making handling of new with enclosing expression more similar to vanilla javac, while preserving the correct outputs from the API.
你有两个选择.
>将NetBeans升级到7.4或更高版本.我在7.4中测试了代码,它运行正常.
>继续使用NetBeans 7.3,不要使用“this.new”.将第11行更改为:
B = new Inner2(){
标签:java,inner-classes,netbeans,anonymous-class,anonymous-inner-class 来源: https://codeday.me/bug/20190708/1402498.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。