获取构造函数本身内部的反射构造函数

时间:2014-05-31 04:25:53

标签: java reflection constructor

假设我有一类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是否提供了一种方法来获取对自身内部构造函数的引用,而无需检查这些异常。

1 个答案:

答案 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