今天创建动态代理的时候,遇到一个final修饰的类,结果程序就抛出异常了:Cannot subclass final class com.mchange.v2.c3p0.ComboPooledDataSource,于是想到要过滤掉这种final的类。想要判断一个类是不是final的,在Class类里没找到,原来在JDK里提供了Modifier工具类来帮助我们判断修饰情况。具体如下:
static boolean | isAbstract(int mod) 如果整数参数包括 abstract 修饰符,则返回 true,否则返回 false。 |
static boolean | isFinal(int mod) 如果整数参数包括 final 修饰符,则返回 true,否则返回 false。 |
static boolean | isInterface(int mod) 如果整数参数包括 interface 修饰符,则返回 true,否则返回 false。 |
static boolean | isNative(int mod) 如果整数参数包括 native 修饰符,则返回 true,否则返回 false。 |
static boolean | isPrivate(int mod) 如果整数参数包括 private 修饰符,则返回 true,否则返回 false。 |
static boolean | isProtected(int mod) 如果整数参数包括 protected 修饰符,则返回 true,否则返回 false。 |
static boolean | isPublic(int mod) 如果整数参数包括 public 修饰符,则返回 true,否则返回 false。 |
static boolean | isStatic(int mod) 如果整数参数包括 static 修饰符,则返回 true,否则返回 false。 |
static boolean | isStrict(int mod) 如果整数参数包括 strictfp 修饰符,则返回 true,否则返回 false。 |
static boolean | isSynchronized(int mod) 如果整数参数包括 synchronized 修饰符,则返回 true,否则返回 false。 |
static boolean | isTransient(int mod) 如果整数参数包括 transient 修饰符,则返回 true,否则返回 false。 |
static boolean | isVolatile(int mod) 如果整数参数包括 volatile 修饰符,则返回 true,否则返回 false。 |
static String | toString(int mod) 返回描述指定修饰符中的访问修饰符标志的字符串。 |