尝试使用 String 数组和 URL 作为参数实现两个构造函数会产生不明确的错误

trying to implement two constructors with arrays of String and URL as parameters gives an ambiguous error

我正在实施名为 ClasspathDiscoverer 的 class 并且有两个构造函数,其签名如下所示。

public class ClasspathDiscoverer {

public ClasspathDiscoverer() {

}

public ClasspathDiscoverer(String[] paths) {

}

public ClasspathDiscoverer(URL[] urls) {

}
}

编译它给我一个错误,如下所示,我有点不知道为什么 java 会将字符串数组与 URL 数组混淆?

对 ClasspathDiscoverer 的引用不明确,org.appops.scanner.ClasspathDiscoverer 中的构造函数 ClasspathDiscoverer(java.lang.String[]) 和 org.appops.scanner.ClasspathDiscoverer 中的构造函数 ClasspathDiscoverer(java.net.URL[]) match

谁能帮我理解一下吗?

你的构造函数没有问题。问题在于您在代码中的其他地方初始化 class 对象。看起来您正在发送一个 null 对象。无法预测您将使用哪个构造函数。

也许可以尝试以下方法:

String[] paths = null;
new ClasspathDiscoverer(paths);