java - indexOf null exception -
public int indexof(x item) { node <x> current = head; int c = 0; if (current.getvalue().equals(item)) { return c; } while (current != null) { current = current.getlink(); c++; if (current.getvalue().equals(item)) { return c; } } return -1; } .
@test public void testindexof() { llist<string> b = new llist<string>(); (int = 0; < 20; i++) b.add("str" + i); assertequals(19, b.indexof("str0")); assertequals(0, b.indexof("str19")); assertequals(-1, b.indexof("not found")); } for reason last assertion bringing error nullpointer exception. made when reach null return -1, trying return in third assertion in test, missing here?
the problem this:
while (current != null) { current = current.getlink(); you ensure current not null . . . change current in way makes possible null again. , you'll reach case whenever item not present in linked-list.
you can fix rearranging code bit:
public int indexof(x item) { node <x> current = head; int c = 0; while (current != null) { if (current.getvalue().equals(item)) { return c; } current = current.getlink(); c++; } return -1; }
Comments
Post a Comment