Welcome to the Java Programming Forums


The professional, friendly Java community. 21,500 members and growing!


The Java Programming Forums are a community of Java programmers from all around the World. Our members have a wide range of skills and they all have one thing in common: A passion to learn and code Java. We invite beginner Java programmers right through to Java professionals to post here and share your knowledge. Become a part of the community, help others, expand your knowledge of Java and enjoy talking with like minded people. Registration is quick and best of all free. We look forward to meeting you.


>> REGISTER NOW TO START POSTING


Members have full access to the forums. Advertisements are removed for registered users.

  • Re: Common Java Mistakes

    Problem description: Forgetting to initialize a variable
    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)
    Suggested fixes

    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
        }
    }
    This article was originally published in forum thread: Common Java Mistakes started by helloworld922 View original post