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