java – netbeans中的错误类型

我为我正在编写的java程序定义了两个类,称之为Class1和Class2.在Class1的构造函数的主体中,我调用了类2的构造函数.但是,我收到了编译错误

 "The type of Class1(JSONObject) is erroneous". 

我试过谷歌搜索这个错误,但无法在任何地方找到任何关于这个确切错误的讨论,所以我想我会把它发布到堆栈交换.

有人可以解释这是什么类型的错误? class1和class2都非常简单:两者都只有一个构造函数方法,它在两种情况下都将JSONObject作为参数.唯一的导入是针对JSON.有什么建议?

//class1 definition
public class Class1 {
       public Class1(JSONObject jObject){
           try{
           //parsing json and saving class variables
           } catch(Exception e)
           {
               System.out.println("Class1 JSON Exception: " + e.getMessage());
           }
       }
}


//constructor of Class2
Class1 user;

public Class2(JSONObject jObject){
    try{
    JSONObject userJSON = jObject.getJSONObject("user");
    user = new Class1(userJSON); //error occurrs here
    }
    catch(Exception e){
   System.out.println("Class2 JSON Exception: " + e.getMessage());

    }
}

}

编辑:当我尝试运行代码,即使有这个编译错误,我得到以下运行时错误:

Exception in thread "main" java.lang.ExceptionInInitializerError
at bitcoin.thesis.Client.main(BTCJamClient.java:18)
Caused by: java.lang.RuntimeException: Uncompilable source code - Erroneous tree type:        
thesis.JSONArray
at thesis.Class3.<clinit>(Class3.java)
... 1 more
Java Result: 1

这里的Class3是另一个具有默认构造函数的类. Client是主类,它接受http请求并将JSON对象传递给Class2构造函数.基本上,这是在Class1和Class2构造函数被调用之前代码执行的一部分.因此它不是由编译错误直接引起的,但我怀疑它们与我的编码环境更常见的相同问题有关.

谢谢,
保罗

解决方法:

我本来希望将此作为评论,但因为我没有声誉,所以我不能.我意识到这也是一个非常晚的反应,但不知道你是否找到了答案.我在谷歌搜索答案时遇到了这个问题.

我也相信这个错误与代码无关,而是由NetBeans创建的错误.我发现相同的代码编译并在一台机器上的NetBeans中运行良好,但在我第一次遇到错误的其他地方没有.

我的解决方案是关闭NetBeans,清除NetBeans缓存并重新启动NetBeans.
我使用的是8.0版,我的缓存位置是:

〜/ .cache / netbeans的/ 8.0 /

我删除了文件夹中的所有内容,并在下次运行时一切都很好.

对于旧版本,我相信缓存可能位于不同的位置,可以通过从帮助菜单打开about窗口找到.

上一篇:java – OpenCV到JNI如何让它工作?


下一篇:java-构建后生成的目标文件不包含必须已经存在的所有已编译类