簡體   English   中英

節點對象通用數組的轉換問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM