String
が宣言されているのでfinal
、カプセル化しかできないと思います。ある程度のプラグ互換性を提供するために、実装するクラスを宣言できますCharSequence
。
public class TypeSafeStringBase implements CharSequence {
protected final String mString;
protected TypeSafeStringBase(String string) {
mString = string;
}
@Override
public char charAt(int index) {
return mString.charAt(index);
}
@Override
public int length() {
return mString.length();
}
@Override
public CharSequence subSequence(int start, int end) {
return mString.subSequence(start, end);
}
@Override
public String toString() {
return mString;
}
}
public class ParamName extends TypeSafeStringBase {
ParamName(String string) {
super(string);
}
}
public class Prompt extends TypeSafeStringBase {
Prompt(String string) {
super(string);
}
}
// etc.
Serializable
and (または各サブクラスComparable<String>
のタイプ セーフ)を実装する基本クラスを宣言することも検討してください。Comparable