簡體   English   中英

以編程方式檢索POJO對象?

[英]retrieving POJO objects programmatically?

假設我有一個具有三個屬性的POJO類員工

1.姓名(字符串)2.地點(字符串)3.出生日期(日期)

然后我向數據庫中發射了一個查詢,該查詢檢索表的第一行並用表數據填充此POJO,如下所示:

名字-約翰所在地-美國生日-27/09/2014

要從此POJO中檢索值,我必須調用getName(),getLocation()和getDOB()。

但是有沒有什么方法可以讓我獲取對象類型數組中存儲在POJO中的所有值,而無需使用getter方法

例如:

Object[0] has the value "John".
Object[1] has the value "USA".
Object[2] has the value "27/09/2014".

(在我的情況下,一個類中大約有80個屬性,並且由於客戶的要求,這些屬性的數量增加了,我通過getter方法獲取每個值,並且每次添加單個屬性時,我都必須在其中編寫一個getter方法來獲取值的代碼。我基本上想要一個更動態的解決方案。)

我認為您正在尋找的是反射。

我希望此鏈接對http://docs.oracle.com/javase/tutorial/reflect/index.html或以下答案有所幫助: 是否可以使用Java Reflection打印出父類的屬性?

您可以嘗試以下方法:

    String[] getObjectsPublicMethods(Object o)
{
    Class clazz = o.getClass();
    Method[] methods = clazz.getDeclaredMethods();
    String[] result = new String[methods.length];
    for (int i=0; i<methods.length; ++i)
    {
        try
        {
            result[i] = (String) methods[i].invoke(o, new Object[] {})
        } catch (IllegalAccessException e)
        {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        } catch (InvocationTargetException e)
        {

        }
    }
    return result;        
}

此方法使用反射來獲取所需的信息,但它假定getter方法在此類中聲明為public,並且所有公共方法都返回String。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM