java.lang.String和String之间的类型不匹配错误
这真是个奇怪的问题,我从来没有遇到过这样的问题。 下面是我在一个更大的类中声明的助手类。它运行得非常好:java.lang.String和String之间的类型不匹配错误,java,string,types,variable-assignment,mismatch,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; roo
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;
}
}
与:
我得到这个错误:
Type mismatch: cannot convert from java.lang.String to String
我在其他类中测试了一些字符串文字赋值,它似乎工作得非常好。我最近更新到Java1.7.0_15,最近下载并安装了Eclipse4.2。我怀疑在构建路径中可能会有一些混乱。
使用Ubuntu 12.04
任何帮助都将不胜感激!我搜索了又搜索,找不到与此问题相近的任何内容。您似乎正在尝试使用“String”作为泛型类型的名称创建泛型类。泛型类型所做的是,无论何时从类创建对象,它都会用新类型替换
中的任何对象
因此,在您的类中,如果您创建了一个树
,则类中任何一个“String”实例都将替换为“Integer”。这是某些类(如ArrayList)允许使用任何类型的工作方式
通常在使用泛型类型时,使用单个字母,例如“T”,以避免它与实际类类型相同
因此,在您的例子中,您试图将一个实际上不是字符串的“字符串”设置为实际字符串。您正在创建一个名为“字符串”的新泛型类型参数,这可能不是您想要的 改变
private static class Tree<String> {
我打字解决了它
import java.lang.String;
这真的很有趣。我以前从未遇到过类似的情况。我收到了与字符串somefunction(){}相同的错误消息。导入已删除错误消息。这不应是答案。java.lang和所有子包都是自动导入的,应该存在。写入import java.lang.String;时出错。我没有撒谎。那么,你的本地设置或类路径有更大的问题。String是java.lang的一部分,它是java中可用的默认包,不需要导入。检查接受的答案,这是正确的答案。java.lang不是自动导入的,在我的情况下不是。在教程中导入它。
private static class Tree<String> {
private static class Tree {
import java.lang.String;