title: Is there a standard Java NonNullable<T> generic, and if not, why not?
body: <p>The problem with annotations such as <code>@NotNull/@NonNull</code> is that they aren't enforced at runtime.  I want to do something like the following:</p>
  
  <pre><code>class Foo {
    String nullable_string;
    final NonNullable&lt;String&gt; nn_string = new NonNullable&lt;String&gt;();
    ...
    public void mutate(String arg) {
      mutable_string = arg;  // arg could be null
      nn_string.set(arg);    // throws NullPointerException for me if arg is null.
    }
    ...
  }
  </code></pre>
  
  <p>Does a standard <code>NonNullable&lt;T&gt;</code> generic exist somewhere, and if not, is there a reason it's a bad idea?</p>