以 Person 类为例:
- public class Person {
- private String name;
- private int age;
- public String a;
- protected int b;
- int c;
- private int d;
- public Person(String name, int age) {
- this.name = name;
- this.age = age;
- }
- public Person() {
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public void eat(String str){
- System.out.println(str);
- }
- @Override
- public String toString() {
- return "Person{" +
- "name='" + name + '\'' +
- ", age=" + age +
- ", a='" + a + '\'' +
- ", b=" + b +
- ", c=" + c +
- ", d=" + d +
- '}';
- }
- }
Person 类
1. 格式: Class 类名称 + Class(如 personClass)= 类名称. class.
例: Class personClass=Person.class.
2. 获取类的构造函数.
获取有参构造器: Constructor constructor = 字节码类. getConstructor(参数类型 1.class, 参数类型 2.class,...........)
例: Constructor constructor =personClass.getConstructor(String.class,int.class)
创建对象: Objct ob=constructor.newInstance("张三",25).
获取无参构造器: Constructor constructor = 字节码类. getConstructor( .)
例: Constructor constructor =personClass.getConstructor( )
创建对象方法 1:Objct ob=personClass.newInstance( ).
创建对象方法 2:Objct ob=constructor.newInstance( ).
3. 获取类的成员变量.
获取所有 public 修饰的成员变量: Field[ ] field = 字节码类. getFields( ).
获取某个 public 修饰的成员变量: Field field = 字节码类. getFields(String name ).
修改成员变量例如:
- Person p=new Person( );
- Field name=personClass.getFields("name" )
- name.set(p,"张三");
获取任意修饰的成员变量: Field[ ] field = 字节码类. getDeclaredFields( ).
获取某个成员变量: Field field = 字节码类. getDeclaredFields(String name ).
修改成员变量例如:
- Person p=new Person( );
- Field name=personClass.getFields("name" );
- name.setAccessible(true);// 忽视修饰符
- name.set(p,"张三");
4. 获取类的成员方法.
获取所有的方法 (自己写的和 Object 类中的):Method[ ] method = 字节码类. getMethods( );
获取某个无参方法: Method eat = 字节码类. getMethod( String 方法名);
使用方法: Method eat=personClass.getMethod(eat);
- Person p=new Person( );
- eat.invoke(p);
获取某个有参方法: Method eat = 字节码类. getMethod( String 方法名, 参数类型 1.class, 参数类型 2.class,.........);
使用方法: Method eat=personClass.getMethod(eat,String.class);
- Person p=new Person( );
- eat.invoke(p."吃饭");
获取方法名: String name=method.getName( ).
获取类名称: String className = 字节码类. getName( ).
来源: http://www.bubuko.com/infodetail-3399209.html