想象一下:
每个单词都是一个字符列表。然而,字符本身不能有,它总是必须是单词的一部分。
所以 Word 类可能如下所示:
class Word extends List<MyCharacter>
现在,如何强制实例化MyCharacter
不属于 a 的 a 是不可能的Word
?也许制作MyCharacter
一个私有内部类Word
并添加一个类似的addCharacter(String character)
方法Word
?但是,如果是私有内部类,是否可以让Word
扩展 List 类?MyCharacter
Word
感谢您对此的任何提示!
更新:
我现在结束了
import java.util.ArrayList;
public final class Word extends ArrayList<Word.MyCharacter> {
protected final class MyCharacter
{
private String character;
public String getCharacter() {
return character;
}
public MyCharacter(String character)
{
this.character=character;
}
}
public void addCharacter(String character) {
add(new MyCharacter(character));
}
}
以下是它的使用方法:
public static void main(String[] args) {
Word word = new Word();
// word.add(new MyCharacter("a")); // as intended: not possible, because MyCharacter class can't be accessed
word.addCharacter("a"); // ok
}