关于Java泛型的stackoverflow已经有一些讨论,但我太笨了,无法解决这个特定的问题。我在一个项目中定义了一个接口,并在另一个接口中实现了它。他们在不同的包裹。编译器会在某些工作区中执行此操作:如果使用具有泛型参数的方法的接口,Eclipse会抱怨名称冲突
名称冲突:SuperDuperHighlightable类型的方法突出显示(EnumSet,int,int)与IHighlightable类型的突出显示(EnumSet,int,int)具有相同的擦除操作,但不会覆盖它
相同的代码不会在其他工作区发生抱怨,而且我也找不到相关的区别。所有项目和工作区都使用JRE SE 1.5。
HighlightingStyle.java
package org.my.api;
public enum HighlightingStyle {
NONE, FIELD, SELECTION, TEST
}
IHighlightable.java
package org.my.api;
import java.util.EnumSet;
import javax.swing.text.BadLocationException;
public interface IHighlightable {
void highlight(EnumSet<HighlightingStyle> style, int start, int length)
throws BadLocationException, IllegalArgumentException;
}
实现:
package org.my.impl;
import java.util.EnumSet;
import javax.swing.text.BadLocationException;
import org.my.api.HighlightingStyle;
import org.my.api.IHighlightable;
public class SuperDuperHighlightable implements IHighlightable {
public void highlight(EnumSet<HighlightingStyle> styleSet, int start, int length)
throws BadLocationException, IllegalArgumentException {
for (HighlightingStyle style : styleSet) {
DoSomething(style, start, length);
}
}
private void DoSomething(HighlightingStyle style, int start, int length) {
// TODO Auto-generated method stub
}
}
你有什么见解,如果这是一个源代码的问题,工作空间问题,或与Eclipse的一些问题?
供参考:如果问题有一个确定的答案(我认为这个问题确实如此),它不应该成为一个社区维基。 – 2009-09-08 15:27:30
谢谢,我在这里是一个新手,我还没有掌握这个论坛维基引擎。我可以撤销这个选项吗? – wigy 2009-09-08 15:37:24
是的,请更改它,因为没有人回答社区维基百科回答问题 – 2009-09-08 15:37:30