java - netbeans、eclipse 和编译器之间的奇怪和不同的行为

标签 java eclipse netbeans

我将这段代码放在一个文件中:

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

截图:

enter image description here

最佳答案

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

将行“class genTest(){”更改为“class genTest {”允许它编译,并打印“false”。

关于java - netbeans、eclipse 和编译器之间的奇怪和不同的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9151791/

相关文章:

java - 无法让 JMagick 工作

android - 如何选择要用于模拟 Android 手机的 AVD?

tomcat - Netbeans Web 应用程序无法在 Windows 7 上启动

java - 如何让变量的输出从最小到最大排序?

java - NetBeans 不会检测 java ME 平台

java - SQL 中的日期选择错误

java - 无法获取编码 XML 字符串的值

java - 如何在单个方法中单独计算字符串中两个字符的出现?

java - 在 Tomcat 6 上部署 webapp

linux - 使 Eclipse 控制台按钮永久化?