2014-04-25 7 views
6

मान लीजिए मैं एक वर्ग है:मैं कैसे प्रतिबिंब का उपयोग करता है, तो एक वर्ग अंतिम है बता सकते हैं

public final class Foo

और एक परिलक्षित Class clz संदर्भ कि उस वर्ग को दर्शाता है।

मैं कैसे कह सकता हूं (clz का उपयोग करके) Foofinal है?

उत्तर

16

Class#getModifiers का उपयोग करना:

Modifier.isFinal(clz.getModifiers()) 

एक वर्ग (या क्षेत्र, या विधि) के संशोधक प्रतिबिंब एपीआई में एक पैक-बिट int के रूप में प्रतिनिधित्व कर रहे हैं। प्रत्येक संभावित संशोधक का अपना छोटा मुखौटा होता है, और Modifier वर्ग उन बिट्स को मास्क करने में मदद करता है।

आप निम्न modfiers के लिए जाँच कर सकते हैं:

  • abstract
  • final
  • interface
  • native
  • private
  • protected
  • public
  • static
  • strictfp
  • synchronized
  • transient
  • volatile
2

आप आदर्श Modifier वर्ग का उपयोग कर एक पठनीय रास्ते में वापसी मान व्याख्या करने के लिए Class.getModifiers() उपयोग करते हैं,:

if (Modifier.isFinal(clz.getModifiers()) 
संबंधित मुद्दे