導航:首頁 > 編程語言 > 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反射相關的資料

熱點內容
程序員用得到數字區嗎 瀏覽:172
python求商 瀏覽:475
ipad能用c語言編譯器嗎 瀏覽:559
軟泥解壓球最新版 瀏覽:996
4萬程序員辭職創業 瀏覽:757
thinkingphp 瀏覽:595
安卓相冊移動文件夾 瀏覽:4
耳朵清潔解壓聲控99的人都睡得著 瀏覽:203
叉車出租網站源碼 瀏覽:872
共享單車的app是什麼 瀏覽:406
不帶gui的伺服器什麼意思 瀏覽:371
金剛經及PDF 瀏覽:100
php中冒號 瀏覽:356
php5432 瀏覽:350
命令在哪使用 瀏覽:170
php獲取網頁元素 瀏覽:706
為什麼需要硬體驅動編譯 瀏覽:883
pm編程怎樣看導柱孔對不對稱 瀏覽:136
農業大學選課找不到伺服器怎麼辦 瀏覽:649
路由配置網關命令 瀏覽:933