跨Netbeans,Eclipse和编译器的奇怪行为和不同行为

暴民:

我在单个文件中有此代码:

public class genIntro {
    public static void main(String [] args){
     genTest g = new genTest();
     g.add( 10 );
     System.out.println( g.get() == new Integer(10) ? true:false  );
     Integer in = (Integer) g.get();


    }
}

class genTest(){

        private Object object;

        public void add(Object object) {
            this.object = object;
        }

        public Object get() {
            return object;
        }


}

第二类genTest的括号中有一个错误的声明()

在Netbeans 6.9.1中,代码可以正确运行并输出false

Product Version: NetBeans IDE 6.9.1 (Build 201007282301)
Java: 1.6.0_21; Java HotSpot(TM) 64-Bit Server VM 17.0-b17
System: Windows 7 version 6.1 running on amd64; Cp1252; en_US (nb)
Userdir: C:\Users\Name\.netbeans\6.9

在Eclipse Indigo中,代码输出:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

    at genIntro.main(genIntro.java:4)

Version: Indigo Service Release 1
Build id: 20110916-0149

然后通过javac我得到命令手动编译

    genIntro.java:12: '{' expected
    class genTest(){
         ^
    1 error

这很奇怪,有人可以解释为什么两者之间有区别吗?既然是错误的,为什么要在Netbeans中编译和运行它?

通过运行 javac genIntro.java

他们都使用jre6

屏幕截图:

在此处输入图片说明

SteveB:

我在命令行和NetBeans 7.1中使用javac 7进行了尝试,并且两者都给出了与您的javac示例相同的错误。您确定源与您的netbeans版本相同吗?我完全看不到它将如何编译。

将“ class genTest(){”行更改为“ class genTest {”允许其进行编译,并输出“ false”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章