有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java确保泛型vararg参数具有相同的类型

我想实现一个方法,对相同类型的对象进行比较

isOnceOf()实现为编译时类型strict并在第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;
}

共 (1) 个答案

  1. # 1 楼答案

    谢谢,图纳基。下一步按预期进行

    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;
    }