扫码关注官方订阅号
1.这个是泛型Class<?> c = A.class ?可以是任意类型 就比如ArrayList array = new ArrayList(); array.add(1);可以array.add("1");也可以但是你放到了这个ArrayList中的数据类型明显就乱了 这样的数据不安全没有价值 所以必须如下ArrayList<String> array=new ArrayList<String>(); 这时候你的array.add(1);就会报错 不可以存放int 类型的数据 2.编译不是报错是警告 warn error 是不一样的 3如图修改后就参数对应就没有警告了
其实这么写就可以了。
public static void main(String[] args) { A a1 = new A(); Class<?> c = A.class; try { Method m = c.getMethod("print", int.class, int.class); Object o = m.invoke(a1, 10, 20); } catch (Exception e) { e.printStackTrace(); } }
为什么传Integer[]会有警告,因为参数类型是Object...。
Integer[]
Object...
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
1.这个是泛型Class<?> c = A.class ?可以是任意类型 就比如ArrayList array = new ArrayList(); array.add(1);可以array.add("1");也可以但是你放到了这个ArrayList中的数据类型明显就乱了 这样的数据不安全没有价值 所以必须如下ArrayList<String> array=new ArrayList<String>(); 这时候你的array.add(1);就会报错 不可以存放int 类型的数据


2.编译不是报错是警告 warn error 是不一样的
3
如图修改后就参数对应就没有警告了
其实这么写就可以了。
为什么传
Integer[]会有警告,因为参数类型是Object...。