我有一个采用通用参数类型的方法。我的场景是将使用不同的参数类型调用此方法。
class something{
public void someMethod(){
List<A> listA = ....; //Class A have a field String Id;
List<B> listB = ....; //Class B haave a field String Id;
testMethod(listA);
testMethod(listB);
}
private <T> void testMethod( List<T> list ){
for( T event : list ){
//TODO (something like): event.getId();
}
}
}
在上面的代码中,所有的参数都是一个List<someObjectType>
。 .所有对象类型都有一个公共(public)字段,需要使用 getter 来获取它的值。现在既然方法定义是通用的,我该如何实现呢?
最佳答案
让 A
和 B
实现一个具有方法 getID
的公共(public)接口(interface):
interface SomeInterface {
String getID();
}
那么你可以:
private <T extends SomeInterface> void testMethod(List<T> list) {
for (T event : list) {
// now you can use `event.getID()` here
}
}
关于java - 将 getter 与 java 泛型方法参数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13710954/