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

Discussion

Which line is an inappropriate use of an assertion?

public class Sample62
{
    interface Store
    {
        default void put(String key, String value)
        {
            assert key != null : "key required";
            write(key, value);
        }

        void write(String k, String v);
    }
}

  • A.No line here is in error.
  • B.assert key != null : "key required";
  • C.void write(String k
  • D.default void put(String key

Answer: B

A default method on an interface is public, so the rule that the key may not be null is part of the published contract and cannot depend on -ea. Implementations and callers outside the interface rely on it. This one needs an explicit throw, exactly as a public class method would.

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

Post your comment

Please log in or register to post a comment.