"的类型<class>"是网络豆中的错误错误



我为正在编写的java程序定义了两个类,分别称为Class1和Class2。在Class1的构造函数体中,我调用了类2的构造函数。然而,我得到编译错误

 "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构造函数之前的代码执行部分。所以这不是由编译错误直接引起的,但我怀疑它们与我的编码环境中更普遍的问题有关。

谢谢,保罗

我本想把这篇文章作为评论,但由于我没有名气,我不能。我意识到这也是一个很晚的回复,但不知道你是否找到了答案。我自己在谷歌上搜索答案时遇到了这个问题。

我也认为这个错误与代码无关,而是由NetBeans创建的错误。我发现相同的代码在一台机器上的NetBeans中编译和运行良好,但在我第一次遇到错误的另一台机器上却没有。

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

~/.cache/netbeans 8.0/

我删除了文件夹中的所有内容,下次运行时一切正常。

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

确保您在类中输入了正确的包名。

我也有同样的问题,解决方法很简单。

:
我从另一个项目中复制/粘贴一些类到我正在工作的项目包中。
其中一些有旧的包声明,编译器没有抱怨(他的原因)。
当我使用返回类型为"错误打包"类之一的方法时,出现了此错误。
(类型错误)


的解决方案为了解决问题,我将包声明更改为正确的声明!

我得到了同样的问题和固定使用例外的答案,因为我使用的是windows 10所以这里是缓存文件夹的位置:

C: 用户 USER_NAME AppData 本地缓存 NetBeans

8.1

AppData是一个隐藏文件夹。

我在netbeans 8.0上有同样的问题。下面的技巧可以解决这个问题:

右键单击project -> properties -> build -> compiling ==>取消选中"compile on save",然后单击ok

我面临这个问题。我通过将所有依赖的jar添加到项目/文件

来解决这个问题。

油脂的回答重新删除netbeans缓存的内容工作。我在MacOS Sierra上使用Netbeans 8.1。

删除"/Users//Library/Caches/NetBeans/8.1/"下的所有内容

这是对《油脂》答案的补充。(由于缺乏声誉,我不能添加评论。)

我有时会遇到同样的问题,总是删除完整的文件夹,所以NetBeans不得不重新构建maven的东西,这可能需要几分钟。

如果有人使用maven,并且不希望NetBeans必须完全重新构建maven仓库和-index,请不要删除NetBeans缓存文件夹中的以下文件夹:

  • mavencachedirs
  • mavenindex

刚刚在NetBeans 11.3上测试过:不删除这三个文件夹会使错误消失,但不会困扰maven。

我决定停止/重新启动NetBeans 8.2,然后再采取"核";的方法。当我返回时,错误已经消失了。

相关内容

  • 没有找到相关文章

最新更新