Inner Class inside an Interface implementing same Interface, what we are achieving by this?
<h1>My Question:</h1>

<p>I was looking at the source code of TextWatcher and I didn't get the concept here. 
What was the point of extending to NoCopySpan?</p>

<h1>TextWatcher.java:</h1>

<pre class="lang-java prettyprint-override"><code>public interface TextWatcher extends NoCopySpan {
     public void beforeTextChanged(CharSequence s, int start, int count, int after);
     public void onTextChanged(CharSequence s, int start, int before, int count);
     public void afterTextChanged(Editable s);
}
</code></pre>

<h1>NoCopySpan.java:</h1>

<pre class="lang-java prettyprint-override"><code>package android.text;

/**
 * This interface should be added to a span object that should not be copied into a new Spanned when performing a slice or copy operation on the original Spanned it was placed in.
 */
public interface NoCopySpan {
    /**
     * Convenience equivalent for when you would just want a new Object() for
     * a span but want it to be no-copy.  Use this instead.
     */
    public class Concrete implements NoCopySpan {}
}
</code></pre>