作者:mobiledu2502928483 | 来源:互联网 | 2022-12-03 17:44
请考虑以下情形:假设您创建了一个接口Foo
:
public interface Foo {
public void bar();
}
并且说SomeOldClass
某个库中有一个旧类要使用.它已经有了bar()
方法,但没有明确实现Foo
.
您已为所有实现的类别编写了以下代码Foo
:
public T callBarOnThird(List fooList){
return fooList.get(2).bar();
}
现在你想让它也适用SomeOldClass
.您无权访问此类的源代码,因此无法对其进行修改.
有没有办法声明Foo
或类似某种"软"接口,(因为在任何实现所有必需方法的类将被接受作为软接口的隐式实现)?如果没有,您将如何使用尽可能干净的代码解决这个问题?
1> Thilo..:
不,不是的.
您必须提供一个适配器实例(有几种方法和工具可以帮助实现,但Java不会"隐式地"执行它).