java - java 中的 Object.callGenericMethod()

标签 java actionscript-3

假设我有这 3 个类(class)

class Human
  public void eat()

class Lawyer extends Human
  public void beEvil()

class Murderer extends Human
  public void beEvil()
  public void kill()

现在我有一个 Action 处理程序,我想在不知道我是什么的情况下处理 Action 。例如:

handleBeEvil(Human human)
{
    ..
    human.beEvil(); //wont obviously work
    ..
}

例如,在 as3 中,我会使用

handleBeEvil(Object human)
{
   human.beEvil(); //would pass compiler, work or break runtime
}

在 Java 中实现此目的的最佳方法是什么?我想避免将所有的 declarations 放在 Human 类中。

最佳答案

创建一个接口(interface)并让 LawyerMurderer 实现它(即 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/

相关文章:

java - 如何在同一浏览器上重新运行 Selenium 2.0 (webdriver) 测试?

java - JSch 多个隧道/跳跃站

java - 翻转多维数组java

apache-flex - AS3 : How accurate are the getTimer() method and the Timer class?

java - 回文法及比较

java - Spring Boot - 不覆盖服务器端口属性

php - 这个 AS3 代码与 PHP 文件通信有什么问题?

actionscript-3 - AS3-addChild错误#1009-IOErrorEvent.IO_ERROR

apache-flex - 动态调用函数

actionscript-3 - AS3自定义对象到ByteArray,然后到自定义对象