我想写一个接受数组和其他东西的泛型方法.每种都可以是任何类型,但它们必须是相同的.我尝试了这个,但我仍然可以在方法中输入任何内容.
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")
这就是我最终所做的。
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)
| 归档时间: |
|
| 查看次数: |
514 次 |
| 最近记录: |