2014-04-25 19 views
6

Bir sınıf olması bir sınıfı son olursa yansıma kullanarak söyleyebilir nasılBen varsayalım

public final class Foo

ve bu sınıfa başvuran bir yansımış Class clz başvuru.

Foo'un final olduğunu nasıl bildirebilirim (clz kullanarak)? Class#getModifiers kullanarak

cevap

16

: bir sınıf (ya da alanı veya metod)

Modifier.isFinal(clz.getModifiers()) 

modifiye yansıma API paketlenmiş-bit int olarak temsil edilir. Her olası değiştiricinin kendi bit maskesi vardır ve Modifier sınıfı bu bitlerin maskelenmesine yardımcı olur.

Aşağıdaki modfiers kontrol edebilirsiniz:

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

Sen ideal okunabilir bir şekilde dönüş değeri yorumlamak Modifier sınıfını kullanarak, Class.getModifiers() kullanın:

if (Modifier.isFinal(clz.getModifiers())