假设我有一个这样的界面,

interface MyIntf{
  void generate();
}


和下面的方法

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


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

但是在Java中是否可以声明运行而没有接口的显式名称。

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

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


和run()可以用任何具有以下方法的类的对象来调用

void generate();

最佳答案

Java使用"nominative"而不是"structural"键入。

仅仅因为一个方法具有相同的名称和参数,并不意味着它会做同样的事情(将相机/枪交给您头部射击)。如果需要使旧类型符合特定接口,请使用适配器。避免反射。

10-07 13:42
查看更多