今天我一直在玩
Eclipse Juno.来自Helios,这是一个很好的升级.一切都正常,除了一个新的编译错误.
我们使用java.net框架’Fuse’,我们调用以下方法:
ResourceInjector.get().inject(true,this);
Eclipse告诉我们:
The method inject(Object[]) is ambiguous for the type ResourceInjector
以下方法相冲突:
inject(Object... components); inject(boolean arg0,Object... arg1);
它在Eclipse Helios中工作得很好(使用Java 1.6.0.25),但现在它提供了一个编译错误,不再需要运行.在我们看来,这是Eclipse Juno中的一个错误,如果我们使用Maven构建使用的是正确的…有没有人知道这样做的一个工作?
解决方法
这实际上是Java 5和Java 6中的一个错误.这已经在Java 7中得到修复,Eclipse现在检查这个“bug”.
更多关于这里的错误:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6886431
在以下情况下应该采用什么方法?
inject(true);
两者都可以应用,但是,原始布尔肯定是更好的匹配?不符合Java语言规范(JLS):
>根据15.12.2.5,这两个都不比另一个更具体(int<:Object is not true)
解决方法(我们无法更改保险丝本身):
ResourceInjector.get().inject(true,new Object [] {this});