可以说我有这三个班
class Human
public void eat()
class Lawyer extends Human
public void beEvil()
class Murderer extends Human
public void beEvil()
public void kill()
现在我有一个动作处理程序,并且我想在不知道自己是什么的情况下处理动作。因此,例如:
handleBeEvil(Human human)
{
..
human.beEvil(); //wont obviously work
..
}
例如,在as3中,我会使用
handleBeEvil(Object human)
{
human.beEvil(); //would pass compiler, work or break runtime
}
用Java实现此目标的最佳方法是什么?我想避免将所有的琐事都归入人类课堂。
最佳答案
创建一个接口并同时使用Lawyer
和Murderer
来实现它(即class Lawyer extends Human implements Evil
):
interface Evil {
void beEvil();
}
然后你的方法是
... handleBeEvil(Evil human)
{
..
human.beEvil(); // now this will work
..
}
关于java - Java中的Object.callGenericMethod(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13772473/