没有演员表的原始代码:
ArrayList<String> elements = new ArrayList<String>();
for (ListTreeNode pos : positions)
elements.add(pos.getElement());
在ListTreeNode中:
public String getElement() {
return element;
}
Eclipse告诉我,如果我这样做,它是从String到String的未经检查的强制转换:
elements.add((String)pos.getElement());
我把演员放在那里,因为在那之前它告诉我,ArrayList中的方法add(String)不适用于类型(String)。我不明白吗?
答案 0 :(得分:3)
Eclipse认为有两种不同的String类型。例如,可以有一个com.example.String
。如果两者都是java.lang.String
并且Eclipse以某种方式进行区分,则非常有趣。
答案 1 :(得分:0)
他们都是java.lang.String
吗?这只是日食会抱怨的方式。如果没有,请清理项目并查看它是否有效。
答案 2 :(得分:0)
检查Eclipse项目是否有多个JVM库包含。一个可以导致你看到的是两个项目A和B的例子,其中B使用A而B的JVM设置不同于A的JVM设置.A使用B的String类与B的String类不同使用。检查您的启动器设置。
答案 3 :(得分:0)
只是一个IT回答:
您是否尝试过将其关闭?
我知道它看起来很愚蠢,但有时eclipse会“累”并且即使你的代码运行完美也会引发错误。
答案 4 :(得分:-5)
public class ListTree<String> {
这就是答案。
为了澄清,我删除了泛型类型说明符。这导致了这个问题。代码现在看起来像:
public class ListTree {