java 反射机制详解

Java 的反射机制是使其具有动态特性的非常关键的一机制,也是在JavaBean 中广泛用的一特性。
运用JavaBean 的最常问题是:根据指定的名,字段名和所对应的数据,得到该类例,下面的一个例子演示了实现
-|Base.java //抽象基
|Son1.java //
类扩1
|Son2.java //
类扩2
|Util.java
/**
* @author metaphy
* create 2005-4-14 9:06:56
*
明:
*/
1Base.java 抽象基只是一个定
public abstract class Base {
}
2Son1.java /Son2.java 是已经实现JavaBean
public class Son1 extends Base{
private int id ;
private String name ;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public void son1Method(String s){
System.out.println(s) ;
}
}
3
public class Son2 extends Base{
private int id;
private double salary;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
4Util.java 演示了如何根据指定的名,字段名和所对应的数据,得到一个
import java.lang.reflect.Method;
public class Util {
//
此方法的最大好是没有Son1,Son2 可以通参数来指定,程序里面根本不用出
public static Base convertStr2ServiceBean(String beanName,String fieldSetter,String paraValue){
Base base = null ;
try {
Class cls = Class.forName(beanName) ;
base = (Base)cls.newInstance() ;
Class[] paraTypes = new Class[]{String.class };
Method method = cls.getMethod(fieldSetter, paraTypes) ;
String[] paraValues = new String[]{paraValue} ;
method.invoke(base, paraValues) ;
} catch (Throwable e) {
System.err.println(e);
}
return base ;
}


public static void main(String[] args){
Son1 son1 =(Son1) Util.convertStr2ServiceBean("trying.reflect.Son1","setName","wang da sha");
System.out.println("son1.getName() :"+son1.getName()) ;
}
}
//
果:
//son1.getName() :wang da sha

谢谢!希望能大家一点启 
以上文章来源自网络,作者不祥。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值