Java 泛型中的通配符是对象还是对象的数据?
假设我有一个节点Java 泛型中的通配符是对象还是对象的数据?,java,generics,Java,Generics,假设我有一个节点 Node<T> someNode; 在方法的参数中,是否指向someNode本身, 或者只是某个节点。数据?假设节点定义为: class Node<T> { List<T> list = new ArrayList<>(); public boolean addNodeToList(T e){ list.add(e); return true; } } 然后你会这样使用
Node<T> someNode;
在方法的参数中,是否指向someNode本身,或者只是某个节点。数据?假设
节点
定义为:
class Node<T> {
List<T> list = new ArrayList<>();
public boolean addNodeToList(T e){
list.add(e);
return true;
}
}
然后你会这样使用它:
Node<String> someData = new Node<>();
someData.addToList("string1");
someData.addToList("string2");
class Node<T> {
private List<Node<T>> children = new ArrayList<>();
public T data;
public boolean addChildNode(Node<T> child){
children.add(child);
return true;
}
}
Node<String> parent = new Node();
parent.data = "string1";
Node<String> child = new Node();
child.data = "string2";
parent.addChildNode(child);
节点父节点=新节点();
parent.data=“string1”;
节点子节点=新节点();
child.data=“string2”;
parent.addChildNode(子节点);
它指向某人传入该方法的任何内容,尽管该数据必须是T
类型。您不能将节点
传递给该方法,尽管您可能可以传递该节点的数据——但是t
不一定来自someNode。数据
不清楚。提供更多的代码。也许通过思考List
更容易理解类型参数,例如T
可以是String
。但是“List”本身不是“String”的类型。“字符串”是“对象”的一种类型,这是有道理的。但是“Node stringNode”将只保存“String”类型的数据值。但只是做“打印(stringNode);”是否仅打印JVM内“stringNode”的地址?
Node<String> parent = new Node();
parent.data = "string1";
Node<String> child = new Node();
child.data = "string2";
parent.addChildNode(child);