响应式网站怎么做才实用,阿里建站平台官网,零食网站页面模板,什么是网络营销的技术文章目录 一、整理框架二、Java反射机制提供的功能三、反射相关的主要API四、相关代码#xff1a;1.Person类2.反射之前#xff0c;对于Person类的操作3.反射之后#xff0c;对于Person类的操作 提示#xff1a;以下是本篇文章正文内容#xff0c;下面案例可供参考
一、整… 文章目录 一、整理框架二、Java反射机制提供的功能三、反射相关的主要API四、相关代码1.Person类2.反射之前对于Person类的操作3.反射之后对于Person类的操作 提示以下是本篇文章正文内容下面案例可供参考
一、整理框架 二、Java反射机制提供的功能
1.在运行时判断任意一个对象所属的类 2.在运行时构造任意一个类的对象 3.在运行时判断任意一个类所具有的成员变量和方法 4.在运行时获取泛型信息 5.在运行时调用任意一个对象的成员变量和方法 6.在运行时处理注解 7.生成动态代理
三、反射相关的主要API
java.lang.Class:代表一个类
java.lang.reflect.Method:代表类的方法
java.lang.reflect.Field:代表类的成员变量
java.lang.reflect.Constructor:代表类的构造器四、相关代码
1.Person类
package com.tyust.edu;/*** author YML TYUST-XDU 2019-2026* create 2023-09-30 10:39*/
public class Person {private String name;public int age;public int id;public Person(String name,int age){this.name name;this.age age;}private Person(String name){this.name name;}public Person(){System.out.println(Person());}Overridepublic String toString() {return 姓名this.name 年龄this.age;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}public void show(){System.out.println(你好我是一个人);}private String showNation(String nation){System.out.println(我的国籍是 nation);return nation;}private static void showDesc(){System.out.println(我是一个可爱的人~);}}
2.反射之前对于Person类的操作
Testpublic void test1(){//1.创建Person类的对象Person p1 new Person(Tom,12);//2.通过对象调用其内部的属性、方法p1.age 10;System.out.println(p1.toString());p1.show();//在Person类外部不可以通过Person类的对象调用其内部私有结构//比如name\showNation()以及私有的构造器。}3.反射之后对于Person类的操作
Testpublic void test2() throws Exception {Class clazz Person.class;//1.通过反射创建Person类的对象Constructor cons clazz.getConstructor(String.class,int.class);Object obj cons.newInstance(Tom,12);Person p (Person)obj;System.out.println(p.toString());//2.通过反射调用对象指定的属性、方法//调用属性Field age clazz.getDeclaredField(age);age.set(p,10);System.out.println(p.toString());//调用方法Method show clazz.getDeclaredMethod(show);show.invoke(p);//通过反射可以调用Person类的私有结构的私有的构造器、方法、属性Constructor cons1 clazz.getDeclaredConstructor(String.class);cons1.setAccessible(true);Person p1 (Person)cons1.newInstance(Mary);System.out.println(p1);//调用私有的属性Field name clazz.getDeclaredField(name);name.setAccessible(true);name.set(p1,HanMeiMei);System.out.println(p1);//调用私有的方法Method showNation clazz.getDeclaredMethod(showNation, String.class);showNation.setAccessible(true);String nation (String)showNation.invoke(p1,中国); //相当于String nation p1.showNation(中国)System.out.println(nation);}