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

Discussion

Which line is an inappropriate use of an assertion?

public class Sample21
{
    public Sample21(String name)
    {
        assert name != null : "name required";
        this.name = name;
    }

    private final String name;
}

  • A.assert name != null : "name required";
  • B.this.name = name;
  • C.private final String name;
  • D.Nothing here is inappropriate.

Answer: A

The constructor is public, so rejecting a null name is part of the contract callers rely on and has to hold with assertions disabled. As written, a null slips through in production and surfaces much later as a NullPointerException far from its cause. A public constructor validates with an explicit throw.

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

Post your comment

Please log in or register to post a comment.