通用与接口

时间:2018-07-28 11:09:07

标签: java generics interface strategy-pattern

这两个返回相同值的方法有什么区别?

接口:

public interface Animal {
    boolean checkNull();
}

主要:

Map<String, Animal> strategyMap = new HashMap<>();

public static boolean checkIfObjectIsNull(Animal animal, Map<String, Animal> strategyMap){
    return strategyMap.get(animal.getClass().getSimpleName()).checkNull();
}

public static <T extends Animal> boolean checkIfObjectIsNullGeneric(T animal, Map<String, Animal> strategyMap) {
    return strategyMap.get(animal.getClass().getSimpleName()).checkNull();
}

1 个答案:

答案 0 :(得分:0)

这两种方法之间没有区别。 Java将T视为Animal。您可以使这两种方法具有相同的名称。当您调用其中之一时,您会发现这两种方法会相互冲突。