我的AIR 2.0 Native进程遇到了很多麻烦,我尝试从AIR应用程序启动Java,然后Java.exe终止自身在Windows任务管理器中,我发现new MidiTest()
是由此造成的。新实例是否有更好的解决方案?
public static void main(String[] arg) {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
while (!(speed.equals(speed_stop))) {
try {
speed = in.readLine();
if(!(Global.newPlayer.equals("1"))){new MidiTest();}
} catch (IOException e) {
System.err.println("Exception while reading the input. " + e);
}
}
}
private MidiPlayer player;
public MidiTest() {
System.out.println("Start player");
// /*
}
答案 0 :(得分:0)
不,创建类的新实例的唯一其他选项是使用反射,这是一个比new
更加模糊和容易出错的选择。除非确实需要,否则不应该使用它。甚至那就是加载类并最终调用对象的构造函数,与new
完全相同。
我怀疑问题出现在您未向我们展示的代码中。 MidiTest
是否有任何(static
或非静态)初始化程序块?那个println()
语句真的是它构造函数中唯一的代码吗?
当然,如果您追查导致终止的确切错误/异常以及它究竟源自何处,它会有所帮助: - )
答案 1 :(得分:0)
除了新功能之外别无选择。
这是实例化对象的唯一方法。即使你使用反射,你仍然在调用构造函数。您需要追踪问题。找到引起的确切异常,以及确切的行号,然后看看您需要做些什么来解决这个问题。
我可以看到您没有提供代码的完整副本。在近距离大括号之前有一个公开评论,这是不对的。这意味着我们无法再帮助您了解我们的信息。