Java 如何将数组作为参数传递给函数,以及与数组中存储的数据类型相同的对象?

Java 如何将数组作为参数传递给函数,以及与数组中存储的数据类型相同的对象?,java,arrays,function,arguments,Java,Arrays,Function,Arguments,我想创建一个以数组和对象为参数的函数: public static int myFunction(Object[] array, Object obj) { //Stuff } 但是,我希望确保obj的数据类型与数组中存储的数据类型相同。如果它们不相同,我可以通过使用obj instanceof array[0]抛出一个异常,但我很好奇是否有办法在函数的参数中指定它。我怀疑有一种方法可以用泛型实现这一点,但我对泛型没有足够的经验来确定。非常感谢您的帮助 只要测试类是否相等即可 pub

我想创建一个以数组和对象为参数的函数:

public static int myFunction(Object[] array, Object obj) {
     //Stuff
}

但是,我希望确保
obj
的数据类型与
数组中存储的数据类型相同。如果它们不相同,我可以通过使用
obj instanceof array[0]
抛出一个异常,但我很好奇是否有办法在函数的参数中指定它。我怀疑有一种方法可以用泛型实现这一点,但我对泛型没有足够的经验来确定。非常感谢您的帮助

只要测试类是否相等即可

public class Program {

    public static void main(String[] args) {
        Object[] arr = new Object[3];
        arr[0] = "akflj";
    
        char test1 = 'a';
        String test2 = "azdf";
    
        System.out.println(test(arr, test1));
        System.out.println(test(arr, test2));
    }



    public static boolean test(Object[] arr, Object item) {
        if(item.getClass().equals(arr[0].getClass())) {
            return true;
        }
        return false;
    }

}

仅当项目已在数组中时才能正常工作如果要进行编译时检查,可以使用泛型:

public static <T> int myFunction(T[] array, T obj) {
    //Stuff
}
公共静态int-myFunction(T[]数组,T obj){
//东西
}

您可以在Java文档中阅读更多关于泛型方法的内容:

公共静态int-myFunction(E[]array,E-obj){
谢谢!但从我的测试来看,这似乎对基元类型不起作用。有什么方法可以让它起作用吗?对于数组,您需要明确使用包装类而不是基元,例如myFunction(新的整数[0],新的整数(1));应该可以工作是的,这和我想的差不多。奇怪的是,它不适用于基本类型。谢谢!