2011-06-30 32 views
2

我想檢索指定類的成員變量列表以及其他信息,如數據類型,大小,值等。這可以使用Reflection類。但除了Reflection類之外,還有其他方法可以獲得這些信息嗎? 在此先感謝。如何獲取java中的類中的字段列表?

回答

1

我知道的唯一的另一種方式是通過源代碼分析,工具如Spoon

1

introspection可以幫助你遠離Reflection

+0

但我想在我的黑莓應用程序中使用它,我不使用java bean。它只是一個包含10個成員變量的類,對於它的每個對象我都想檢索成員信息和否。該類別的成員今後可能會有所不同。有三個這樣的類我想要做到這一點。 – gauri

+0

那麼「Reflection」有什麼問題? –

+0

但黑莓沒有Reflection類,我想在android上使用相同的代碼 – gauri

0

的org.springframework.util.ReflectionUtils類實際上是在這些情況下,相當的幫手。

1

只需使用您所在班級的字段class提供的方法即可。請參閱對象Class

1
  1. 反射,這實際上是做
  2. 使用編譯器生成分析源代碼最簡單的方法(ANTLR項目有java的語法文件),它更有點複雜和意志在您的項目中需要額外的依賴關係,這僅適用於您有源代碼
  3. 讀取java類文件並進行分析的最複雜的情​​況。你將不得不創建一個Java字節碼解析器來讀取二進制文件。但是這可能是最快的方法(沒有額外的LALR-k解析,沒有像反射那樣的開銷),你將控制讀什麼,如何閱讀,可以使用編譯的java代碼。

問題是你爲什麼認爲反射不適合你? 與以前的java版本相比,它在java 1.5中速度更快。

+0

我想要課程信息。做定製的對象序列化,我將在Android和黑莓應用程序中使用。但黑莓不支持java.lang.reflect包,所以我無法獲取Field信息。我應該如何實現這一目標? – gauri

相關問題