我有多个类,每个类都有一个共同的领域。我正在编写一种处理提取此公共字段的方法。例如:
class A{
..
String blah;
..
}
class B{
..
String blah;
..
}
Run Code Online (Sandbox Code Playgroud)
因此,可以为每个类类型编写多个方法,而不是使用一个接受通用类的方法来实现?我想要的是一种类型的方法:
void func(List <T> data){
for(T t:data){
print t.blah()
}
}
Run Code Online (Sandbox Code Playgroud)
我知道上面的代码不正确,但是我们如何获得类似的功能?
首先,创建一个包含所有常用方法签名的接口。
interface Blah {
String getBlah();
}
Run Code Online (Sandbox Code Playgroud)
然后,创建现有的类A并B实现该接口。(@Override用于确保正确覆盖了该方法。)
最后,在中func,获取实现该接口的对象列表。
void func(List<? extends Blah> data) {
for (Blah t : data) {
System.out.println(t.getBlah());
}
}
Run Code Online (Sandbox Code Playgroud)