【发布时间】:2011-04-24 12:03:21
【问题描述】:
我不知道为什么会出现模棱两可的错误。这是我所拥有的示例代码:
public class MyString{
//Data:
private char[] theString;
//constructors:
public MyString(){ // default constructor
}
public MyString(String s){ // parameterized constructor
}
public MyString(char[] s){ // parameterized constructor
}
public MyString(MyString s){ // copy constructor
}
//A method that calls a constructor:
public MyString foobar(){
return new MyString(theString);
}
}
当 foobar() 从其他地方调用时,上面会产生这个错误:
./MyString.java:15: reference to MyString is ambiguous, both method MyString(char[])
in MyString and method MyString(theString) in MyString match
return new MyString(theString);
^
有什么想法吗?
【问题讨论】:
-
由于此代码有效,您应该将无效代码提供给我们(在其他网站,例如 ideone 或 grepcode)。
-
是该代码不起作用,还是与不起作用的代码相似?
-
我觉得奇怪的是,当它不包含类型时,错误会引用
method MyString(theString)作为模棱两可的签名之一。 -
当没有人能够重现这个问题时,谁在投票赞成这个问题?
-
我认为这是一个编译器错误,我无法重现它。您使用的是什么版本的 JDK 和操作系统?另外,你能分享你调用 foobar() 的代码吗
标签: java methods constructor call ambiguous