我有以下java類,它具有一個實例變量屬性作爲聲明類時傳遞的泛型類型。傳遞一個泛型類型對象作爲方法參數的Java
當我嘗試分配傳遞它作爲方法參數的屬性時,如果我更改參數本身的值,它似乎不會更改其值。
代碼:
public class BST<T extends Comparable<T>, S>{
private Node<T, S> bstRoot;
public Node<T,S> getRoot() {
return bstRoot;
}
public void setRoot(Node<T,S> root) {
this.bstRoot = root;
}
public boolean put(T key, S value){
Node<T,S> node = new Node<T,S>(key, value);
return put(node, bstRoot);
}
private boolean put(Node<T,S> node, Node<T,S> root){
if(root == null){
root = node;
}
else{
if(root.compareTo(node) < 0){
put(node, root.getRightChild());
}
else{
put(node, root.getLeftChild());
}
}
return true;
}
}
當我做到以下幾點:
public class BSTTest {
public static void main(String[] args){
BST<Integer, String> bst = new BST<Integer, String>();
bst.put(10, "Hello10");
}
}
做放後,bstRoot仍然是空,而不是被設置爲Node對象與主要值10和值Hello10。那麼它是不是通過引用傳遞?
我在您發佈的代碼中看不到'BST'構造函數。 – Eran