当前位置: 首页 > news >正文

JDK9+ Method.class.getDeclaredFields() Method实例将不能再直接通过反射修改

JDK9+更安全了,以下代码示例,原因见截图

Test Code
import sun.reflect.Reflection;import java.lang.reflect.Field;
import java.lang.reflect.Method;public class Base {public static void main(String[] args) throws Exception {Method m = Class1.class.getDeclaredMethod("getName");m.setAccessible(true);System.out.println(m.invoke(new Class1()));Class2 clazz2 = new Class2();/* jdk9+, return empty array */Field[] fields = Method.class.getDeclaredFields();/* jdk9+, failed */Field f = Method.class.getDeclaredField("clazz");f.setAccessible(true);/* replace the "getName" method field clazz from Class1 ot Class2 */f.set(m, clazz2.getClass());System.out.println(m.invoke(clazz2));}static class Class1 {public String getName() {return "Sub1";}}static class Class2 {public String getName() {return "Sub2";}}
}
Reflection.class
JDK8 的Reflection

在这里插入图片描述500

JDK20 的Reflection

在这里插入图片描述

来自最先进LLM的安慰

在这里插入图片描述

http://www.dtcms.com/a/318218.html

相关文章:

  • 无人机航拍数据集|第4期 无人机太阳光伏板红外目标检测YOLO数据集10945张yolov11/yolov8/yolov5可训练
  • 大疆无人机使用eport连接Jetson主板实现目标检测
  • selenium操作指南
  • 前端路由守卫
  • JavaWeb服务器/servlet容器(Tomcat、Undertow 、WebLogic)
  • 前端应用场景题目(待总结优化)
  • 攻防世界WEB(新手模式)20-unseping
  • 基于 kubeadm 搭建 k8s 集群
  • 京东商品评论接口开发全指南:从数据获取到分析应用实战
  • 【20205CVPR-目标检测方向】基于事件的高效目标检测:具有空间和时间注意力的混合神经网络
  • Lodash 的终极进化Radashi
  • JAVA 程序员cursor 和idea 结合编程
  • 北京JAVA基础面试30天打卡03
  • SAP MR51 显示不是ALV格式的问题
  • 开源远程工具rustdesk
  • 力扣 hot100 Day67
  • Linux firewall 防火墙管理
  • SpringBoot 接入SSE实现消息实时推送的优点,原理以及实现
  • React:生命周期
  • 二、Istio流量治理(一)
  • 佳文鉴赏 || FD-LLM:用于机器故障诊断的大规模语言模型
  • 性能为王:一次从压测到调优的实战全流程复盘
  • PHP常用日期时间函数
  • 线程-线程池篇(二)
  • 【CSS】动态修改浏览器滚动条宽度
  • 楼宇自控系统对建筑碳中和目标的实现具重要价值
  • MCU程序的ARM-GCC编译链接
  • Powershell---替换文本文件中指定行的整行内容
  • K8S云原生监控方案Prometheus+grafana
  • Java throw exception时需要重点关注的事情!