Which line is an inappropriate use of an assertion?
import java.util.*;
public class Sample11
{
public static void main(String[] args)
{
List<String> names = new ArrayList<String>();
names.add("ada");
assert names.remove("ada");
System.out.println(names.size());
}
}
Answer: C
The removal is the assertion's condition, so it only happens when assertions are enabled. Run normally the element is never removed and the size is 1 rather than 0. This exact pattern is the one the Oracle guide calls out; the fix is to remove first, keep the boolean result, and assert on that.
Please log in or register to report this question.