Problem category: Runtime problem
Diagnosis Difficulty: Easy-medium
Difficulty to Fix: Easy-medium
This problem occurs when you forget to initialize an object variable. It will usually manifest itself as a Null Pointer Exception when you try to run the code.
public class Node { public Node[] neighbors; public int value; public Node(int value) { this.value = value; } }
public class NodeTester { public static void main(String[] args) { Node myNode = new Node(5); myNode.neighbors[0] = new Node(3); } }
Error Message
Probably 90% of the time this problem will manifest itself with a Null Pointer Exception when you try to run it. However, this exception will pop up at where the null value will cause a problem, not where you need to fix the problem.
Exception in thread "main" java.lang.NullPointerException
at NodeTester.main(NodeTester.java:6)
at NodeTester.main(NodeTester.java:6)
Look for where the value should have been initialized (almost always in the constructor if it's an object field), then initialize it to an appropriate value.
public class Node { public Node[] neighbors; public int value; public Node(int value) { this.value = value; this.neighbors = new Node[5]; // can have 2 neighbors } }