反射机制

来源:互联网 发布:企业域名注册流程 编辑:程序博客网 时间:2024/06/05 04:34

1,自动生成get,set方法;

用Myeclipse开发java web程序,写javabean的时候,如果字段很多的话,写get和set方法是一件很无语和浪费时间的事情,所以Myeclipse提供了一个自动生成这些方法的功能。

     首先新建一个javabean Student.java,字段有sno,sname,age等。如下:
      public class Student
     {
       private String sno;
       private String sname;
       private int age;
     }

     保存后,右键Student.java,选择source->Generate Setter and Getter...这一项,选择select All选中所有的字段,确定后,即生成了所有字段的get和set方法,十分方便,节省了很多时间。

2,一个类的常用生成方法

package com.yiji;public class test1 {private String brand;private String color;private int maxSpeed;public test1(){}public test1(String brand, String color, int maxSpeed){this.brand =brand;this.color = color;this.maxSpeed = maxSpeed;}public void introduce(){System.out.println("brand:"+brand);}public static void main(String[] args) {test1 car = new test1("红旗", "黑色",100);car.introduce();}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getMaxSpeed() {return maxSpeed;}public void setMaxSpeed(int maxSpeed) {this.maxSpeed = maxSpeed;}}

3,用反射法

package com.yiji;import java.lang.reflect.Constructor;import java.lang.reflect.Method;public class Car {public static test1 initByDefaultConst() throws Throwable{//通过类装载器获得test1对象ClassLoader loader = Thread.currentThread().getContextClassLoader();Class clazz = loader.loadClass("com.yiji.test1");//获取类的默认构造器对象并通过它实例化对象Constructor cons = clazz.getDeclaredConstructor((Class[])null);test1 car = (test1)cons.newInstance();//通过反射方法设置属性Method setBrand = clazz.getMethod("setBrand", String.class);setBrand.invoke(car,"红旗");return car;}public static void main(String[] args)throws Throwable{test1 car = initByDefaultConst();car.introduce();}}


0 0
原创粉丝点击