泛型方法参数 - Java
2022-09-04 05:53:01
我有两个几乎相同的方法,但我试图避免代码重复。
他们每个人都将一个唯一的对象作为参数,并从中找出最高值。
下面是一个示例:
public Integer getHighestIndexValue(List<ObjectA> list) {
int highestValue;
List<Integer> indexes = new ArrayList<Integer>();
for (ObjectA a: list) {
indexes.add(Integer.parseInt(a.getA()));
}
highestValue = Collections.max(indexes);
return highestValue;
}
艺术
public Integer getHighestIndexValue(List<ObjectB> list) {
int highestValue;
List<Integer> indexes = new ArrayList<Integer>();
for (ObjectB b: list) {
indexes.add(Integer.parseInt(b.getB()));
}
highestValue = Collections.max(indexes);
return highestValue;
}
如何使用通用参数组合这两者?
我尝试创建一个包含这两个类的类,并在方法签名中对其进行扩展。仍然需要铸造。BaseClass
public <T extends BaseClass> Integer getHighestIndexValue(List<T> objectList) {
int highestValue;
List<Integer> indexes = new ArrayList<Integer>();
for (T objects: objectList) {
indexes.add(Integer.parseInt(objects.getAorB())); ------ this line needs casting
}
highestValue = Collections.max(indexes);
return highestValue;
}
我以前使用过泛型,但还没有使用泛型参数。
有没有办法解决这个问题?