2010-11-17 5 views
1
class Node<T>{ 

private T myValue; 
private ArrayList<Object> next; 



public <U> void addLink(U n){ 
     this.next.add(n); 
} 


} 

dans le principal j'ai:classe générique avec un ArrayList contenant une référence de classe générique se

Node<String> myNode1 = new Node<String>("Ciao"); 
    Node<Integer> myNode2 = new Node<Integer>(12); 

    myNode1.addLink(myNode2, true); 

ai besoin dans le nœud de classe à cointain pointeurs vers le noeud adiacent

mais java jette NullPointerException

S'il vous plaît aidez-moi.

+0

myNode1.next est-il réellement défini sur une référence ou est-il toujours NULL? – cdhowie

+1

Aussi, vous pouvez regarder la piletrace que java sort avec cette erreur. Il vous dira exactement où le pointeur nul est survenu. – shoebox639

Répondre

4

this.next n'a jamais été initialisé. Essayez de le déclarer:

private ArrayList<Object> next = new ArrayList<Object>(); 
+2

Oui, bien que je pense que 'ArrayList ' est de mauvaise forme dans la plupart des cas. Je soupçonne user496223 serait mieux avec un 'ArrayList >' – CurtainDog

+0

Ou peut-être même 'Noeud ' donné le nom du champ 'next'. –

+0

Oui, je ne suis pas très clair sur ce qu'il avait en tête avec ça. Il semble presque que chaque nœud pourrait potentiellement avoir un type d'objet différent, ce qui me semble étrange. – StriplingWarrior

Questions connexes