导航:首页 > 编程语言 > javabean反射

javabean反射

发布时间:2022-10-05 14:27:49

A. 给你一张表,将这张表如何反射成一个javabean

你的问题缺少个前提吧?

如果应用了Hibernate的话就可以直接将表映射为POJO类,直接就可以使用HQL语句对类(对应的表)进行基本的数据操作了!!

如果没有应用Hibernate的话,就把表字段封装成javabean吧!并且写好相关的setter()和getter()方法!!

例如:

表:test

字段

testID(int),testName(varchar),testAge(int),testSex(varchar)

则封装为javabean后为

public class Test{

private Integer testID; //对应字段testID
private String testName; //对应字段testName
private Integer testAge; //对应字段testAge
private String testSex; //对应字段testSex

//以下是相应的getter()和setter()方法!
public Integer getTestAge() {
return testAge;
}
public void setTestAge(Integer testAge) {
this.testAge = testAge;
}
public Integer getTestID() {
return testID;
}
public void setTestID(Integer testID) {
this.testID = testID;
}
public String getTestName() {
return testName;
}
public void setTestName(String testName) {
this.testName = testName;
}
public String getTestSex() {
return testSex;
}
public void setTestSex(String testSex) {
this.testSex = testSex;
}
}

B. 什么是JAVA的反射机制

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

C. java反射机制

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

D. javabean中什么地方用到了反射机制

javabean在struts中的formbean中用到了反射,通过反射获取javabean的属性并且获取方法名

E. Java反射问题

一个标准的javabean类所有字段都是私有的.然后提供该字段的GET,SET.
这个是前提!
1.该字段的SET 方法 有可能加了拦截代码.有些值不赋进去.例如你做一个注册.要填性别的时候就只能填男女.其他不能填的就会用拦截代码拦截掉.
2.如果你用反射,就有方法直接访问那个字段,无论那字段是否私有.赋值的时候用的是JAVA反射包里Field类(java.lang.reflect.Field)里提供的SET方法其实就相当于直接赋值.不用经过其他拦截代码.即不用经类本身字段的SET方法
3.反射的意义体现了它能对项目的旷展性上.
例如你要实例化一个业务类.
普通:Demo d = new Demo();
------------------------------------
反射:Demo d= Class.forName(`类全名`);//可以直接通过类名就实例化一个对象,不用直接NEW
//而类名可以写在配置文件上面.用IO.读进来用就可以了.

//这样写得话,到时候要升级业务需求的时候,要换一个实现类,就不用其他改动源码,把新写好的业类类全名直接写在配置文件上就可以了

F. java javabean 为什么要用反射方法获得属性值

学习的话 还是少用一些开源工具
工作的话 那就是另一回事了
反射 可以通过配置文件进行加载类
如果通过配置文件调用所需的方法(配置文件取出的值为字符串)正向是不可以调用的 所以
需要反射 同理 慢慢推

G. 什么是javabean有什么用

1、概述:

JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 属性。 换句话说,javabean就是一个java的类,只不过这个类你要按上面提到的一些规则来写,比如必须是公共的啊,无参构造啊等等,按这些规则写了之后,这个javabean可以在程序里被方便的重用,使开发效率提高。

2、介绍:

最初,JavaBean的目的是为了将可以重复使用的软件代码打包标准。特别是用于帮助厂家开发在综合开发环境(IDE)下使用的java软件部件。这些包括如Grid控件,用户可以将该部件拖放到开发环境中。从此,JavaBean就可以扩展为一个java web 应用的标准部件,并且JavaBean部件框架已经扩展为企业版的 Bean(EJB)。

JavaBean 和 Server Bean(通常称为 Enterprise JavaBean (EJB))有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对象或组件。它们还有从当前所驻留服务器上的容器获得其它特性的能力。这使得 bean 的行为根据特定任务和所在环境的不同而有所不同。

3、JavaBean的任务:

(1) 一个开发良好的软件组件应该是一次性地编写,而不需要再重新编写代码以增强或完善功能。

(2) JavaBean组件在任意地方运行是指组件可以在任何环境和平台上使用,这可以满足各种交互式平台的需求。

(3)JavaBean组件在任意地方的重用说的是它能够在包括应用程序、其他组件、文档、Web站点和应用程序构造器工具的多种方案中再利用。

H. java怎样通过反射机制取javabean的属性值和方法

用hibernate逆向工程。在myeclipse中选择myeclipse database Explorer 然后连接你的数据库,然后选择你要反射的表选择hibernate reverse engineering就可以了。

I. java反射有哪些用途

j2ee中的其他组建,JAVA的反射是指,可以通过一个类名来探察这个类里面的信息,比如说类的属性名,属性名的修饰符,方法名,方法返回值,方法修饰符等等,反正除了方法体得不到,其他都可以用反射得到;反射还可以生成类的实例,通过这个实例定义属性,调用方法,特别是能调用私有的属性和私有的方法。

Object obj = Class.forName("").newInstance();

public void invokeMethod(Object obj, String methodName, Object[] param)
throws Exception {
Class clazz = obj.getClass();
Class[] classArgs = new Class[param.length];
for (int i = 0; i < param.length; i++) {
classArgs[i] = param[i].getClass();
}
Method method = clazz.getMethod(methodName, classArgs);
method.invoke(obj, param);
}

阅读全文

与javabean反射相关的资料

热点内容
数据中心pdf 浏览:524
crf源码解析 浏览:853
服务器软件开发是什么意思 浏览:941
删除彩信android 浏览:862
元宵节猜灯谜h5源码 浏览:69
乐培生app怎么绑定 浏览:762
视频压缩不清楚怎么说 浏览:525
加好友服务器繁忙是怎么回事 浏览:381
怎么解绑app的支付宝账号 浏览:911
ip地址服务器不可用怎么解决方法 浏览:183
为什么软件需要服务器 浏览:63
redis操作命令大全 浏览:597
python字符串重复索引 浏览:961
为什么香信新版本连接不上服务器 浏览:50
元旦程序员打羽毛球 浏览:614
otc焊接机器人离线编程教学 浏览:412
51单片机的ea引脚有何用途 浏览:207
centos查看用户命令 浏览:840
程序员脸胖 浏览:744
hdfs在主目录下创建文件夹 浏览:800