求大神指导

weixin_46257938 2020-02-05 08:15:15
List<String> list = new ArrayList<>();
list.add("java");
list.add("php");
list.add(100);

如何利用反射机制把100放进去不会报错
...全文
144 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_46257938 2020-02-06
  • 打赏
  • 举报
回复
引用 6 楼 qybao的回复:
[quote=引用 4 楼 weixin_46257938 的回复:]
可以讲一下具体的思路吗

说的是这个意思
List<Object> list = new ArrayList<>();
list.add("java");
list.add("php");
list.add(100);

如果非要用反射,那就试试以下代码吧,感觉这样泛型没什么意义,还不如用上面的方式直接用Object做泛型
try {
List<String> list = new ArrayList<>();
list.add("java");
list.add("php");
Class<?> c = list.getClass();
Method m = c.getDeclaredMethod("add", Object.class); //反射获取add方法
m.invoke(list, 100); //调用add方法
System.out.println(list);
} catch (Throwable e) {
e.printStackTrace();
}


[/quote] 嗯嗯,懂了,谢谢大神指导
qybao 2020-02-06
  • 打赏
  • 举报
回复
引用 4 楼 weixin_46257938 的回复:
可以讲一下具体的思路吗

说的是这个意思
List<Object> list = new ArrayList<>();
list.add("java");
list.add("php");
list.add(100);

如果非要用反射,那就试试以下代码吧,感觉这样泛型没什么意义,还不如用上面的方式直接用Object做泛型
try {
List<String> list = new ArrayList<>();
list.add("java");
list.add("php");
Class<?> c = list.getClass();
Method m = c.getDeclaredMethod("add", Object.class); //反射获取add方法
m.invoke(list, 100); //调用add方法
System.out.println(list);
} catch (Throwable e) {
e.printStackTrace();
}


Java全栈路线 2020-02-06
  • 打赏
  • 举报
回复
引用 5 楼 weixin_46257938 的回复:
[quote=引用 1 楼 此昵称无法识别的回复:]我之前用过反射去赋值类型不对的话会报错,要不你直接用(String)100吧
必须用反射机制把100存进去,最后输出这三个值[/quote] 你的list类型已经限制了,没办法用int,反射可以暴力破解私有属性,强制类型转换好像搞不了,上面说的Object也是一直解决方法,不过那样也就不存在使用反射了
weixin_46257938 2020-02-05
  • 打赏
  • 举报
回复
引用 1 楼 此昵称无法识别的回复:
我之前用过反射去赋值类型不对的话会报错,要不你直接用(String)100吧
必须用反射机制把100存进去,最后输出这三个值
weixin_46257938 2020-02-05
  • 打赏
  • 举报
回复
引用 2 楼 qybao的回复:
为什么要这样赋值?如果list可以存不同类型,直接用List<Object>不就好了吗?
可以讲一下具体的思路吗
weixin_46257938 2020-02-05
  • 打赏
  • 举报
回复
必须用反射机制把100存进去,最后输出这三个值
qybao 2020-02-05
  • 打赏
  • 举报
回复
为什么要这样赋值?如果list可以存不同类型,直接用List<Object>不就好了吗?
Java全栈路线 2020-02-05
  • 打赏
  • 举报
回复
我之前用过反射去赋值类型不对的话会报错,要不你直接用(String)100吧

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧