在java.lang.String和String之间键入不匹配错误

Stu*_*der 5 java string types variable-assignment mismatch

这真是一个奇怪的问题,我从未遇到类似的事情.以下是我在一个更大的类中声明的辅助类.它运行得非常好:

private static class Tree<String> {
    private Node<String> root;

    public Tree(String rootData) {
        root = new Node<String>();
        root.data = rootData;
        root.children = new ArrayList<Node<String>>();
    }

    private static class Node<String> {
        String data;
        Node<String> parent;
        ArrayList<Node<String>> children;
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,通过搞乱我发现了一个混乱的问题.通过替换此行:

root.data = rootData;
Run Code Online (Sandbox Code Playgroud)

有:

root.data = "some string literal";
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Type mismatch: cannot convert from java.lang.String to String
Run Code Online (Sandbox Code Playgroud)

我测试了其他类中的一些字符串文字分配,它似乎工作得很好.我最近更新到Java 1.7.0_15,最近下载并安装了Eclipse 4.2.我怀疑在构建路径中可能存在一些混淆.使用Ubuntu 12.04

任何帮助将不胜感激!我搜索和搜索,找不到任何接近这个问题的东西.

j__*_*__m 8

您正在创建一个名为"String"的新泛型类型参数,这可能不是您想要的.

更改

private static class Tree<String> {
Run Code Online (Sandbox Code Playgroud)

private static class Tree {
Run Code Online (Sandbox Code Playgroud)