2018-09-13

//放射的相关知识

package Debug;

import java.lang.reflect.Constructor;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

public class One {

public static void main(String[] args) throws Exception{

Class c1=Person.class;

// Class c2=new Person.getclass(); 该种方法错误

try {

Class c3=Class.forName("Debug.Person");

//得到Person的实例

Person p=(Person)c1.newInstance();

//用有参的构造函数得到对象实例

Constructor cs=c1.getConstructor(String.class,String.class);

Person p1=(Person)cs.newInstance("heyao","f");

//通过反射得到属性

Field f1=c1.getDeclaredField("Name"); //根据属性的名称单独的获取

f1.setAccessible(true);  //属性私有,设置权限

f1.set(p1,"heyao"); //将对象P1的属性Name设置为heyao

//使用泛型操作普通的方法

Method m1=c1.getMethod("Print");  //得到名为Print的方法

// m1.setAccessible(true); //Print方法为共有的,不需要设置

m1.invoke(p1); //触发事件

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一对失联多年的恋人再度重相逢,古稀之年,老爷爷病重,即将不久于人世。他们的爱情故事浪漫且带着悲伤的色彩。 他年轻时...
    雪舞岚裳阅读 389评论 0 0
  • 突然在朋友圈看到几个植友去到了杭州图书馆佛学分馆,忽而想起13年曾有一次访而不得的经历。曾写小文留念,以便日后再寻...
    白堤流连阅读 359评论 0 0
  • 你怎么那么普通 “当这句话从我的脑海里蹦出来时,是在一个群里遇见她,曾经,她是我的依靠,曾经她是我的行为准则,可是...
    刘莘静阅读 359评论 0 1