Ich schaute auf den Quellcode von TextWatcher und ich habe das Konzept hier nicht erhalten Welchen Sinn hatte die Erweiterung auf NoCopySpan?Innere Klasse innerhalb einer Schnittstelle, die dieselbe Schnittstelle implementiert, was erreichen wir dadurch?
TextWatcher.java:
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);
}
NoCopySpan.java:
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 {}
}
Ich denke, ist nur eine '' 'helper''' Klasse, die verwendet werden soll, wenn Sie brauchen, um eine Instanz von '' 'NoCopySpan''' übergeben. – danypata