今天创建动态代理的时候,遇到一个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)返回描述指定修饰符中的访问修饰符标志的字符串。 |
本文介绍在Java中使用动态代理时遇到的问题——当尝试代理一个被final修饰的类时,会抛出异常。文章详细解释了如何利用Java提供的Modifier工具类来判断类的修饰情况,以便过滤掉这些不可代理的类。

被折叠的 条评论
为什么被折叠?



