假设我有一个这样的界面,
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"键入。
仅仅因为一个方法具有相同的名称和参数,并不意味着它会做同样的事情(将相机/枪交给您头部射击)。如果需要使旧类型符合特定接口,请使用适配器。避免反射。