说我有这个功能:
public Set<String> giveUp()
{
Set<String> alreadyGuessed = guessed;
guessed = new LinkedSet<String>();
//fill Guessed with possible words
anag(currentWord, "");
//Remove ones already guessed
Iterator<String> alGuessIterator = alreadyGuessed.iterator();
while (!alGuessIterator.done())
{
guessed.remove(alGuessIterator.get());
alGuessIterator.advance();
}
return guessed;
}
当我调用此函数并尝试使用以下行存储它时:
LinkedSet<String> notGuessed = (LinkedSet<String>)wordGame.giveUp();
不管上面函数的内部实现如何,这总是安全的吗?换句话说,不能Guessed 是一个ArraySet 并且它仍然保持一个完全安全的演员阵容吗?或者我是否误解了返回界面的意义,我只是应该有“Set notGuessed”来防止需要强制转换?
我的老师在课堂上的问题上毫无用处,如果我做任何不安全的铸造,也会立即给我0分。