Machine-translated by Google. Questions are authored in English.
Top

Discussion

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());
    }
}

  • A.System.out.println(names.size());
  • B.Every assertion above is used appropriately.
  • C.assert names.remove("ada");
  • D.names.add("ada");

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.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.