我需要检查一个类的一些内容,其中之一是确保该类的构造函数不使用任何参数,并建议您使用getConstructor()
我已经在线检查过了,但是我很难理解它的执行方式。
你们能以任何方式帮助我吗?谢谢。
答案 0 :(得分:0)
try {
Constructor<?>[] ctors = MyClass.class.getConstructors();
if (ctors.length == 0) {
//no constructor returned means only implicit no arg constructor available
}
for (Constructor<?> c : ctors) {
if (c.getParameterTypes().length == 0) {
//explicit no arg constructor present
}
}
}
catch (SecurityException e) {
// TODO either LOG the exception or re-throw, but not both
}
答案 1 :(得分:0)
您可以在构造函数对象上使用getParameterCount()
。
下面是完成所需工作的通用方法代码:
private static boolean checkDefaultConstructor(Class<?> cl) {
Constructor<?>[] cons = cl.getConstructors();
boolean defaultConstructor = false;
for (Constructor<?> con : cons) {
if (con.getParameterCount() == 0)
defaultConstructor = true;
}
return defaultConstructor;
}