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

Discussion

Which line rests on a mistaken assumption?

public class Sample51
{
    public static void main(String[] args)
    {
        Object o = null;
        assert o instanceof String : "not a string";
        System.out.println("ok");
    }
}

  • A.System.out.println("ok");
  • B.Every line above is correct as written.
  • C.assert o instanceof String : "not a string";
  • D.Object o = null;

Answer: C

instanceof answers false for null rather than throwing, so the assertion fails cleanly with its message and no NullPointerException occurs. That is correct behaviour, but the message is misleading: null is not a String of the wrong kind, it is no object at all. A null check states the real precondition.

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

Post your comment

Please log in or register to post a comment.