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

Discussion

Which line will cause a compilation error?

public class Sample02
{
    static void audit() { }

    public static void main(String[] args)
    {
        int total = 0;
        assert total >= 0 : audit();
        System.out.println(total);
    }
}

  • A.Compilation succeeds.
  • B.assert total >= 0 : audit();
  • C.static void audit() { }
  • D.int total = 0;

Answer: B

The value of Expression2 is handed to an AssertionError constructor, so it must produce a value. A call to a void method produces none and the compiler rejects it. Declaring audit() as void is legal on its own; using its result as a detail message is not. Any non-void expression would be accepted.

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

Post your comment

Please log in or register to post a comment.