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

长沙 外贸网站建设公司价格/腾讯会议价格

长沙 外贸网站建设公司价格,腾讯会议价格,关于手机的网站有哪些内容,郑州网站建设工作说明:Java 的反射(Reflection)机制允许程序在运行时动态获取类的信息并操作类或对象的方法、字段、构造器等。其核心原理是通过 Class 对象 在运行时解析类的结构。 一、反射的核心原理 类加载与 Class 对象 1)当 JVM 加载一个 .…

说明:Java 的反射(Reflection)机制允许程序在运行时动态获取类的信息并操作类或对象的方法、字段、构造器等。其核心原理是通过 Class 对象 在运行时解析类的结构。

一、反射的核心原理
  1. 类加载与 Class 对象

    1)当 JVM 加载一个 .class 文件时,会为每个类生成一个唯一的 Class 对象(位于堆内存中)。
    2)Class 对象包含类的完整结构信息(方法、字段、构造器、父类、接口等)。

  2. 反射入口

    1)通过 Class 对象,可以动态获取类的元数据,并创建对象、调用方法、访问字段等。

二、获取 Class 对象的四种方式
  1. 通过类名.class(最安全,性能最好)

说明:知道具体类名

Class alunbarClass = TargetObject.class;

但是我们一般是不知道具体类的,基本都是通过遍历包下面的类来获取 Class 对象,通过此方式获取Class对象

  1. 通过对象.getClass()
Class alunbarClass1 = Class.forName("cn.javaguide.TargetObject");

Class.forName(className)方法,内部实际调用的是一个native方法 forName0(className, true, ClassLoader.getClassLoader(caller), caller);

  1. 通过 Class.forName(“全限定类名”)(常用,需处理异常)
Employee e = new Employee();
Class alunbarClass2 = e.getClass();
  1. 通过类加载器ClassLoader.LoadClass(“全限定类名”)
class clazz = ClassLoader.LoadClass("cn.javaguide.TargetObject");
三、代码示例
  1. 创建一个我们要使用反射操作的类 TargetObject:
package cn.javaguide;public class TargetObject {private String value;public TargetObject() {value = "JavaGuide";}public void publicMethod(String s) {System.out.println("I love " + s);}private void privateMethod() {System.out.println("value is " + value);}
}
  1. 使用反射操作这个类的方法以及参数
package cn.javaguide;import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;public class Main {public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchFieldException {/*** 获取TargetObject类的Class对象并且创建TargetObject类实例*/Class<?> tagetClass = Class.forName("cn.javaguide.TargetObject");TargetObject targetObject = (TargetObject) tagetClass.newInstance();/*** 获取所有类中所有定义的方法*/Method[] methods = tagetClass.getDeclaredMethods();for (Method method : methods) {System.out.println(method.getName());}/*** 获取指定方法并调用*/Method publicMethod = tagetClass.getDeclaredMethod("publicMethod",String.class);publicMethod.invoke(targetObject, "JavaGuide");/*** 获取指定参数并对参数进行修改*/Field field = tagetClass.getDeclaredField("value");//为了对类中的参数进行修改我们取消安全检查field.setAccessible(true);field.set(targetObject, "JavaGuide");/*** 调用 private 方法*/Method privateMethod = tagetClass.getDeclaredMethod("privateMethod");//为了调用private方法我们取消安全检查privateMethod.setAccessible(true);privateMethod.invoke(targetObject);}
}

输入出内容:

publicMethodprivateMethodI love JavaGuidevalue is JavaGuide
四、反射的优缺点
优点缺点
动态加载类,提高代码灵活性性能开销大(比直接调用慢约 10-20 倍)
突破封装性(可操作私有成员)破坏封装性,可能导致安全问题
实现通用框架(如 Spring)代码可读性降低,调试困难

文档代码参考:Java 反射(详细 含示例)

http://www.whsansanxincailiao.cn/news/30284688.html

相关文章:

  • 网站建设-设计/百度推广后台登录入口
  • 宁德市路桥建设有限公司网站/优化游戏卡顿的软件
  • 网站开发 报刊/嘉兴seo计费管理
  • 临沂网站建设哪家专业/香港服务器
  • 网页设计师认证/关键词优化软件
  • 学校做网站需要什么/2023知名品牌营销案例100例
  • 网站推广营销公司/巨量算数数据分析入口
  • 网站正常打开速度/营销型网站建设团队
  • 政务公开和网站建设工作的建议/查询网站信息
  • 优质聊城做网站公司/网络推广公司怎么找客户
  • Gzip 网站 能够压缩图片吗/奶茶的营销推广软文
  • 杭州富阳网站建设/网站友情链接是什么
  • 网站建设与规划试卷/百度搜索次数统计
  • 在网站添加邮箱/谷歌seo排名优化服务
  • java网站开发 csdn/百度指数查询官网入口登录
  • 昆山哪里有做网站的/今日重大新闻头条财经
  • 局域网怎么建立/谷歌推广seo
  • 重庆黄埔建设集团网站/百度seo排名优化是什么
  • 吾爱网站/夸克搜索引擎
  • 做外贸都用什么网站/百度查看订单
  • 提供电子商务网站建设外包服务的企业/网页搜索关键词
  • 如何做动态网站/湖南靠谱seo优化
  • 教育网络系统管理/博客程序seo
  • 网站建设服务描述/网站排名seo教程
  • 真人做的免费视频网站/做网页用什么软件好
  • 做新闻网站有什么意义/搜狗网址
  • 一品威客网是怎么骗钱的/河北百度seo软件
  • 承德建设工程信息网站/成都网络营销搜索推广
  • 网站头部导航代码/免费做网站怎么做网站链接
  • 帮人做钓鱼网站以及维护/主要推广手段免费