[英]Casting Issue for Generic Array of Node Objects
我在創建 java 通用數組時遇到問題,我需要創建一個 Node 類型的數組。
所以,我這樣做是為了聲明:
private Node<E> [] nodes;
稍后進行初始化, nodes = (Node<E>[]) new Node [values.length];
當我嘗試做類似設置 Node 對象的屬性值nodes[i].setValue(values[i]);
的操作時 ,我得到 NullPointerException,這意味着我的節點數組設置有問題。
我做錯了什么? 是因為轉換不正確,還是我的代碼中有其他原因?
Java,在初始化一個數組時,默認會將數組中的對象全部初始化為null。 因此,當您調用nodes = (Node<E>[]) new Node [values.length]
時,雖然您正在創建一個節點數組,但它們最初都設置為 null。為了解決這個問題,您需要手動使用 for 循環構造數組中的每個節點,即
for (int i = 0; i < values.length; i++) {
nodes[i] = new Node();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.