如何编写一个接受x类型数组的方法和另一个与数组类型相同的变量

Chr*_*ith 5 java generics

我想写一个接受数组和其他东西的泛型方法.每种都可以是任何类型,但它们必须是相同的.我尝试了这个,但我仍然可以在方法中输入任何内容.

public static <T> boolean arrayContains(T[] array, T object){
    return Arrays.asList(array).contains(object);
}
Run Code Online (Sandbox Code Playgroud)

我可以调用这个方法,arrayContains(new String[]{"stuff"}, new Pig())但我只想接受它arrayContains(new String[]{"stuff"}, "more stuff")

Chr*_*ith 0

这就是我最终所做的。

public static boolean arrayContains(Object[] array, Object object) {
        if (array.getClass().getComponentType() != object.getClass()) {
            throw new IllegalArgumentException("Type of array and object are not equal! " + array.getClass().getComponentType().getName() + " != " + object.getClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$
        }
        return Arrays.asList(array).contains(object);
    }
Run Code Online (Sandbox Code Playgroud)