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

Discussion

Which line is an inappropriate use of an assertion?

public class Sample52
{
    static boolean verbose = false;

    public static void main(String[] args)
    {
        assert verbose = true;
        if (verbose) System.out.println("diagnostics on");
        System.out.println("done");
    }
}

  • A.if (verbose) System.out.println("diagnostics on");
  • B.System.out.println("done");
  • C.The code is correct as it stands.
  • D.assert verbose = true;

Answer: D

This is the trick of using an assertion to detect whether assertions are enabled: the single = assigns, the assigned value is boolean so it compiles, and it passes. It works, but it makes the program behave differently under -ea by design, which is the opposite of what assertions are for, and it reads as a typo for ==.

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

Post your comment

Please log in or register to post a comment.