0
            Employee emp = null;



            int searchVal1 = (StringUtils.isNotBlank(tab2textField.getText())) ? Integer.parseInt(tab2textField.getText()) : 0;


            String searchVal2 = tab2textField2.getText();
            String searchVal3 = tab2textField3.getText();

            ArrayList<Employee> arraylist = null;
            ArrayList<Employee> finalarraylist = null;





            //add to a new arraylist

            try
            {
             FileInputStream fin = new FileInputStream("employeeal.ser");
             ObjectInputStream in = new ObjectInputStream(fin);

             arraylist = (ArrayList) in.readObject();

             Iterator<Employee> it = arraylist.iterator();
             while(it.hasNext())
             {
                emp = it.next();

                System.out.println("First Name: " + emp.getFname());
                System.out.println("Last Name: " + emp.getLname());
                System.out.println("ID: " + emp.getId());

                int intval = emp.getId();
                String stringf = emp.getFname();
                String stringl = emp.getLname();

                //if(emp.getId() == searchVal1 || emp.getFname() == searchVal2 || emp.getLname() == searchVal3)
                //if((emp.getId() == searchVal1) || (emp.getFname()) == "a") || (emp.getLname() == "a"))
                if(emp.getId() == searchVal1 || (emp.getFname()).equals(searchVal2) || (emp.getLname()).equals(searchVal3))
                {
                    //finalarraylist.add(emp);

                    //finalarraylist.add(new Employee(emp.getId(), emp.getFname(), emp.getLname()));

                    finalarraylist.add(new Employee(intval, stringf, stringl));

                    System.out.println("added");
                }
                else
                {
                    System.out.println("NOT added!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                }

             }

             in.close();
             fin.close();
            }catch(IOException e)
            {
             e.printStackTrace();

            }catch(ClassNotFoundException e2)
            {
             System.out.println("Class not found");
             e2.printStackTrace();

            }

So I am trying to make a list out of another list, but when I get to this line:

                    finalarraylist.add(new Employee(intval, stringf, stringl));

it crashes and says null pointer, but an arraylist doesn't have a fixed storage, so I don't really get why I am getting a null pointer exception.

First Name: rewer
Last Name: erw
ID: 2342
NOT added!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
First Name: hue
Last Name: huer
ID: 34343
NOT added!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
First Name: hueer
Last Name: huer
ID: 34343
NOT added!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
First Name: hueer
Last Name: huer
ID: 34343565
NOT added!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
First Name: a
Last Name: a
ID: 1

This is the output. It crashes before printing "added".

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at TextField.actionPerformed(Test.java:676)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6527)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6292)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4883)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
user3435009
  • 809
  • 2
  • 8
  • 12
  • 1
    We could list the hundreds of thousands of way that this might be possible, none of which will actually help you, or you could consider providing a [runnable example](https://stackoverflow.com/help/mcve) which demonstrates your problem. This will result in less confusion and better responses – MadProgrammer Aug 08 '14 at 01:01
  • `TextField`? Did you mean to use `JTextField`? – trashgod Aug 08 '14 at 01:03
  • i don't know, it works. I don't know the difference between the two. – user3435009 Aug 08 '14 at 01:10

1 Answers1

2

Take a quick look at your code...

ArrayList<Employee> finalarraylist = null;
//...
// finalarraylist still null...
try
{
    //...
    // finalarraylist still null
    while(it.hasNext())
    {
        //...
        // finalarraylist still null
        if(emp.getId() == searchVal1 || (emp.getFname()).equals(searchVal2) || (emp.getLname()).equals(searchVal3))
        {
            //...
            // finalarraylist still null
            finalarraylist.add(new Employee(intval, stringf, stringl));

Between declaring finalarraylist and trying to use if, you actually never create an instance of it...

Two minutes of debugging would have had you hit this problem. This is great opportunity to discover the power of IDE's (and Java's for that matter) debugger...

MadProgrammer
  • 343,457
  • 22
  • 230
  • 366
  • ah, so new arraylist finalarraylist = arraylist ahh sorry i didn't program for like 3 months. – user3435009 Aug 08 '14 at 01:05
  • 1
    At some point before you use `finalarraylist`, yes `finalarraylist = new ArrayList<>(25);`, probably before you start the `while`, otherwise you'll lose what ever you add to it... – MadProgrammer Aug 08 '14 at 01:07