Java:如何在不指定完整类型的情况下为函数参数指定类型

标签 java

假设我有这样一个界面,

interface MyIntf{
  void generate();
}

和下面的方法

void run(Myintf x) {
  x.generate();
}

我可以使用实现 MyIntf 的类的对象调用 run()。

但在 Java 中是否可以在没有显式接口(interface)名称的情况下声明运行。

即我可以像这样指定 run() 吗?

void run("Some object which has a method called 'void generate()'" x){
  x.generate();
}

和 run() 可以用任何类的对象调用,该类的方法称为

void generate();

最佳答案

然后你必须使用反射来做你想做的事。像这样的东西:

void run(Object o) {
    Method m = o.getClass().getMethod("generate", new Class[0]);
    if (m!=null)
        m.invoke(o, new Object[0]);
}

您还必须添加必要的 try/catch(我不太清楚),我认为您可以传递 null 而不是空数组。

关于Java:如何在不指定完整类型的情况下为函数参数指定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9276455/

相关文章:

java - 警报对话框自定义

java - 尝试使用三个数组Java获得三列数据

java - Objects.requireNonNullElse() 和 Optional.ofNullable().orElse() 有什么区别?

java - 数据库表 'PACIENTE'不存在

java - 在 Android 中每秒更新一次

java - 从 JList 中获取多个选定项

java - 设计一个使用或不使用 Google App Engine 进行部署的应用程序

java - 覆盖子类中的成员数据,在父类(super class)实现中使用?

java - 枚举单例,由接口(interface)引用,由字符串名称引用实例

Javafx仿射变换