小编yon*_*awa的帖子

通用方法参数 - Java

我有两个几乎相同的方法,但我试图避免代码重复.

它们中的每一个都将一个唯一的对象作为参数,并从中找出最高的值.

这是一个例子:

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;

} 
Run Code Online (Sandbox Code Playgroud)

要么:

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;

}  
Run Code Online (Sandbox Code Playgroud)

如何使用通用参数组合这两个?

我尝试创建一个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())); ------ …
Run Code Online (Sandbox Code Playgroud)

java generics collections generic-collections

13
推荐指数
1
解决办法
960
查看次数

Java字符串null检查!= null或!str.equals(null)?

在java中检查非空值的最佳方法是什么.

String query ="abcd";
Run Code Online (Sandbox Code Playgroud)

query != null VS !query.equals(null).

哪个更好?为什么?

java string null null-check

4
推荐指数
2
解决办法
4万
查看次数