我在编写一个Java程序时,定义了两个类,称为Class1和Class2。在Class1的构造函数体中,我调用了Class2的构造函数。然而,我遇到了编译错误。
"The type of Class1(JSONObject) is erroneous".
我尝试在谷歌上搜索这个错误,但无法找到任何关于这个确切错误的讨论,所以我想在Stack Exchange上发布它。
请问有人能解释一下这是什么类型的错误吗? 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构造函数被调用之前。因此,它不是由编译错误直接引起的,但我怀疑它们与我的编码环境普遍存在的同一问题有关。
谢谢, 保罗
userJSON
是什么,你在哪里定义它的? - Vimal Bera