Java/BlackBerry生成错误覆盖太多类
有人听说过在Java中重写太多的类吗?也许这个问题只是与黑莓开发有关,但我想知道它是否也是Java中的一个问题 假设我有以下几点:Java/BlackBerry生成错误覆盖太多类,java,user-interface,class,blackberry,overriding,Java,User Interface,Class,Blackberry,Overriding,有人听说过在Java中重写太多的类吗?也许这个问题只是与黑莓开发有关,但我想知道它是否也是Java中的一个问题 假设我有以下几点: LabelField lblTitle = new LabelField(title) { protected void paint(Graphics graphics) { graphics.setColor(0x00FFFFFF); graphics.clear(); super.paint(graphic
LabelField lblTitle = new LabelField(title) {
protected void paint(Graphics graphics) {
graphics.setColor(0x00FFFFFF);
graphics.clear();
super.paint(graphics);
}
};
LabelField lblSubTitle = new LabelField(releaseYear + ", " + rating) {
protected void paint(Graphics graphics) {
graphics.setColor(0x00FFFFFF);
graphics.clear();
super.paint(graphics);
}
};
这个代码有效。但是,我注意到,在整个项目中,通过在许多不同的类中多次重写paint()方法,我收到了错误:
I/O Error: Cannot run program "jar": CreateProcess error=2, The system cannot find the file specified
到目前为止,我唯一的解决方案是清理我的GUI代码…最小化它并重用它。也许这样做很好,这样我就可以不那么粗心地在我的类中创建GUI代码了
不管怎么说,我只是想知道是否有人听说过这个。如果您有兴趣阅读有关我所面临问题的更多信息,请查看以下链接:
覆盖
paint()
的次数不太可能产生您报告的错误。这个错误似乎是由于一个构建(编译)错误导致的,这个错误阻止了jar的创建。因此,您应该尝试仔细查看编译器/构建工具报告的错误消息
如果这不起作用,您可以尝试通过“分而治之”找到错误的原因,如下所示:注释掉覆盖paint()
的所有位置。如果问题消失,请取消对其中一半覆盖的注释,然后重试。如果问题再次出现,请注释这一半的一半(并递归地继续)。否则,如果问题仍然存在,请对前半部分进行注释,并取消对后半部分的注释(然后递归继续)
即使在许多地方重写paint()
,这种类型的二进制搜索也会很快收敛。例如,如果paint()
被重写256次,则只需八次递归迭代即可找出导致问题的迭代