24

对以下代码为什么会出现重复的类错误感到困惑?

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package database_console;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


/**
 *
 * @author davidsonr
 */
public class DBConnect {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }
}

Netbeans 将 DBConnect 突出显示为红色,并带有重复的类错误。

4

6 回答 6

71

这是 netbeans 的一个已知问题BUG 226360



它可能有助于清除 Netbeans 缓存:

转到Help->About你会看到

缓存目录: Path\to\Directory

关闭 NetBeans,转到指定目录并删除所有内容。

于 2014-09-29T21:07:01.133 回答
5

如果包名称与文件夹名称不匹配,或者包名称被省略,也会发生这种情况。检查源代码中的 package 声明。

于 2020-09-08T16:36:54.093 回答
4

这可能是由于同一个包中有 2 个同名的类

于 2013-10-11T12:57:57.823 回答
3

如果您在同一包中的单独文件中引用错误类,并且错误类与您引用错误类的文件的包路径不匹配,也会发生这种情况。

例如文件 1 some.incorrect.path.package

class_that_is_erroring{ }

文件 2 some.correct.path.package

类新类{

class_that_is_erroring myclass = null;

}

两个文件中的包路径必须相互匹配,并且与文件系统目录匹配。

于 2019-02-25T13:48:40.287 回答
0

一个新的答案......在这种情况下,重复的类错误令人困惑。下一个错误也是如此,但它也指出了真正的问题和修复。

从我的日志文件中:

Error 1: a\g\GoodClass error:duplicate class: a.g.GoodClass //Not the problem
Error 2: a\b\BadClass error: cannot access GoodClass        //The problem
         bad source file: a\g\GoodClass                     //No, it's fine
         file does not contain class x.y.GoodClass          //How to fix it
         Please remove or make sure it appears in the correct subdirectory of the sourcepath.

Java 报告错误 2的第一行,因为 BadClass 正在使用通配符导入,要么import x.*;要么import x.y.*;。Java 编译器首先找到了 xyGoodClass,因此无法确定您真正想要的是哪个:agGoodClass 或 xyGoodClass。

修复:删除通配符导入并从库 xy 添加您需要的特定导入

于 2021-12-02T21:51:14.587 回答
0

如果文件名与类名不匹配,NetBeans 8.0.1 会将此报告为重复类。

于 2016-10-07T17:50:43.707 回答