来源:blog.csdn.net/u010164936/article/details/87922082
在一个类中,为了不让外界访问到某些属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法 , 但有没有其他方法可以访问呢?答案是有的,这就是java反射带来的便利 。利用反射访问类的私有属性及方法如下:
public class Reflect {private String name;private int age;pri百思特网vate Reflect(int age) {this.age = age;}private void speak(String name) {System.out.println("My name is"name);}public Reflect(String name) {this.name = name;}}
首先,我们要了解三个反射包中的类:
- Constructor:代表类的单个构造方法,通过百思特网Constructor我们可执行一个类的某个构造方法(有参或者无参)来创建对象时 。
- Method:代表类中的单个方法,可以用于执行类的某个普通方法 , 有参或无参,并可以接收返回值 。
- Field:代表类中的单个属性,用于set或get属性
- AccessibleObject:以上三个类的父类 , 提供了构造方法,普通方法,和属性的访问控制的能力 。
【private用法和造句 private是什么意思】
public static void main(String[] args)throws Exception {Reflect reflect = new Reflect("a");Method[] methods = Reflect.class.getMethods();Field[] fields = Reflect.class.getDeclaredFields();百思特网for (int i = 0; i
推荐阅读
- 2022全国十大体育名校排名最新
- 安徽医学教育网登录入口「安徽医学专科学校排名」
- 上海16个一本大学 上海海事大学是一本吗
- 青岛理工大学是一本还是二本「400分能上青岛科技大学吗」
- 西南民族大学是一本吗,成都西南民族大学是几本
- 东南大学土木工程学院,东南大学土木工程学院是一本吗
- 青岛大学是几本,青岛大学是重点一本吗
- 最新一级学科目录「大学专业代码大全」
- 天津外国语学校附属中学官网 天津外国语大学附属外国语学校