假设我有以下代码:的Java:的instanceof或定制的getType
public boolean doesElfLikeIt (Monster mon)
{
if (mon instanceof Orc) { return false; }
if (mon instanceof Elf) { return true; }
}
这是一个很好的编程方法,或者我应该更想去的是这样的:
public boolean doesElfLikeIt (Monster mon)
{
if (mon.getType() == Orc.type) { return false; }
if (mon.getType() == Elf.type) { return true; }
}
我之所以这是因为我听到很多关于instanceof
比较是多么邪恶的事情,但是我发现它很有用。
你不明白为什么它是邪恶的;你的建议稍微恶化一点。你应该使用多态函数。 – SLaks
出于好奇,为什么我的方法会被视为更邪恶? –
如果你传递一个继承'Orc'的类? – SLaks