簡體   English   中英

如何在沒有公共no-arg構造函數的情況下獲取pojo類的屬性名稱?

[英]How to get property names of a pojo class without public no-arg constructor?

我想要一個POJO屬性名稱的數組(或列表)。 我嘗試了commons-beanutil的BeanUtils.describe(obj) ,但是它需要一個對象實例。 但是,如果我只有那個類,而沒有公共的無參數構造函數,該怎么辦? 我無法使用clazz.newInstance()生成對象。

我該如何解決? 是否有任何庫可以挖掘一個類並傳遞屬性名?

(我知道我可以使用反射來手動解析類結構,但是我正在尋找一個方便的庫)

謝謝。

Java具有反射實用程序的構建-您可以使用。 讓我們看看ClassJava文檔

例如,使用反射Demo.class.getMethods(); 獲取名為Demo的類的所有getter方法(無需實例化)。

List<Method> allGetterMethodsOfClassDemo() = new ArrayList<Method>();
for(Method method : Demo.class.getMethods()){
  if(method.getName().startsWith("get") || method.getName().startsWith("is")) {
    allGetterMethodsOfClassDemo.add(method);
  }
}

我從來沒有使用過它(或者關於java.beans任何東西),但是java.beans.Introspector.getBeanInfo(Class)可能正是您想要的。

暫無
暫無

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

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