我想实现比较相同类型对象的方法。
将isOnceOf()
实现为编译时类型严格并在第3行给出编译错误是否可行?
目前我只收到警告。
public static void main(String[] args) {
System.out.println(isOneOf(3, 1, 2, 3)); // true
System.out.println(isOneOf("A", "B", "C", "D")); // false
System.out.println(isOneOf(1, "B", "C", "D")); // false, warn
}
public static <T> boolean isOneOf(T obj, T mate, T... mates) {
if (obj == null) {
return false;
}
if (obj.equals(mate)) {
return true;
}
for (T m : mates) {
if (obj.equals(m)) {
return true;
}
}
return false;
}
答案 0 :(得分:0)
谢谢,Tunaki。接下来按预期工作。
public static <O, T extends O> boolean isMember(O obj, T mate, T... mates) {
if (obj == null) {
return false;
}
if (obj.equals(mate)) {
return true;
}
for (T m : mates) {
if (obj.equals(m)) {
return true;
}
}
return false;
}