千家信息网

Java反射机制的功能以及举例

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍"Java反射机制的功能以及举例",在日常操作中,相信很多人在Java反射机制的功能以及举例问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java反射机
千家信息网最后更新 2025年11月08日Java反射机制的功能以及举例

这篇文章主要介绍"Java反射机制的功能以及举例",在日常操作中,相信很多人在Java反射机制的功能以及举例问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java反射机制的功能以及举例"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1) 获得类

A. 运用getClass() (每个class都有此函数)

i. String str = "abc";

ii. Class c1 = str.getClass();

B. 运用Class.forName() (static method 最常被使用)

i. Class c1 = Class.forName ("java.lang.String");

ii. Class c2 = Class.forName ("java.awt.Button");

C. 运用 .class 语法

i. Class c1 = String.class;

ii. Class c2 = java.awt.Button.class;

iii. Class c4 = int.class;

iv. Class c5 = int[].class;

D. 运用 TYPE语法 ( primitive wrapper classes 基本数据类型包装类的 TYPE语法)

i. Class c1 = Boolean.TYPE;

2) 获得属性

以下四个方法可以获得属性,主要参见的是Java.lang.class

Public Field getField

(String name)

返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段

public Field[] getFields()

返回一个包含某些 Field 对象的数组,这些对象反映此 Class 对象所表示的类或接口的所有可访问公共字段

Public Field

getDeclaredField(String name)

返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段

public Field[]

getDeclaredFields()

返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段

3) 获得方法()

以下四个方法可以获得方法,要参见的是Java.lang.class

public Method

getMethod(String name,

... )

返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法

public Method[] getMethods()

返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法

public Method

getDeclaredMethod(String name,…)

返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法

public Method[]

getDeclaredMethods()

返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法

4) 获取类的构造器

以下四个方法可以获得方法,要参见的是Java.lang.class

public Constructor

getConstructor(Class... )

返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法

public Constructor[]

getConstructors()

返回一个包含某些 Constructor 对象的数组,这些对象反映此 Class 对象所表示的类的所有公共构造方法

Public Constructor

getDeclaredConstructor(Class...)

返回一个 Constructor 对象,该对象反映此 Class 对象所表示的类或接口的指定构造方法

public Constructor[]

getDeclaredConstructors()

返回 Constructor 对象的一个数组,这些对象反映此 Class 对象表示的类声明的所有构造方法。它们是公共、保护、默认(包)访问和私有构造方法

示例代码:

import java.lang.reflect.Constructor;  public class TestConstructor {      /**       * @param args       * @throws ClassNotFoundException        * @throws SecurityException        * @throws NoSuchMethodException        */     public static void main(String[] args) throws Exception {          // TODO Auto-generated method stub          Class classType=Class.forName(args[0]);          Constructor Constructor= classType.getConstructor();                        System.out.println(Constructor.toString());                }  }

5) 新建类的实例

调用类的Class对象的newInstance方法

import java.lang.reflect.Constructor;    public class TestConstructor {      /**       * @param args       * @throws ClassNotFoundException        * @throws SecurityException        * @throws NoSuchMethodException        */     public static void main(String[] args) throws Exception {          // TODO Auto-generated method stub          Class classType=Class.forName(args[0]);          //Constructor Constructor= classType.getConstructor();          Object inst=classType.newInstance();          System.out.println(inst);         }  }

调用默认Constructor对象的newInstance方法

import java.lang.reflect.Constructor;    public class TestConstructor {      /**       * @param args       * @throws ClassNotFoundException        * @throws SecurityException        * @throws NoSuchMethodException        */     public static void main(String[] args) throws Exception {          // TODO Auto-generated method stub          Class classType=Class.forName(args[0]);          Constructor Constructor= classType.getConstructor();          Object inst=Constructor.newInstance();          System.out.println(inst);         }  }

调用带参数Constructor对象的newInstance方法

Class classType=User.class Constructor constructor2 =          classType.getDeclaredConstructor(int.class, String.class);   Object inst = constructor2.newInstance(1, "123");   System.out.println(inst);

到此,关于"Java反射机制的功能以及举例"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

对象 方法 接口 数组 功能 机制 反射 字段 i. 学习 语法 属性 成员 更多 保护 帮助 私有 实用 接下来 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 滴滴出行启动网络安全 网络技术人员需要笔记本电脑吗 广东酒店软件开发 龙江人社服务器返回数据格式 寒假网络安全教育平台 铁路网络安全事件级别 广州支付软件开发咨询 支行网络安全等级 使命召唤17连接什么服务器好 华为云阿里云数据库哪个好 squad僵尸服务器一直加载中 兰州服务器租用 网络安全宣传手抄报a4纸第1讲 乐易佳服务器尚未连接什么意思 网络安全常识与防范观后感 郑州软件开发培训机构哪个好 诺顿网络安全破解版 兴义市天气预报软件开发 保密及网络安全工作总结 大同软件开发行业标准 网络安全方向的工作的专家分析 数据库有被他人改动 哪里有好的协同软件开发 软件开发一般学什么专业 福建安防卫星授时服务器虚拟主机 中国财经资讯数据库 浙江未来网络技术 服务器如何通过手机连接网络 观看网络安全警示教育片新闻 数据库插入数据自动排序
0