假设我有一类Book
s,可以使用这样的构造函数进行实例化:
class Book {
public Book(String name) {
Constructor<Book> cons = null;
try {
cons = Book.class.getConstructor(String.class);
} catch (NoSuchMethodException | SecurityException e) {
throw new RuntimeException(e);
}
//Additional detail. I will pass the 'cons' to Hibernate's constructor validation
}
}
在构造函数Book(String name)
中,我需要获取构造函数本身的引用。但问题是我必须使用无意义的try-catch块来包装语句,因为我知道构造函数肯定存在且确实可以访问。所以我想知道Java是否提供了一种方法来获取对自身内部构造函数的引用,而无需检查这些异常。
答案 0 :(得分:1)
&#34; class.getConstructor&#34;我不确定您查询的构造函数的可用性,因此无论您是否确定可用性都无关紧要。
但是,您可以尝试谷歌反思。 Here是javadoc
之前我没有使用它,但我确实看到了获取所有构造函数的方法。而且没有&#34;抛出&#34;
public static Set<Constructor> getAllConstructors(Class<?> type,
com.google.common.base.Predicate<? super Constructor>... predicates)
get all constructors of given type, up the super class hierarchy, optionally filtered by predicates