gpt4 book ai didi

java - 在构造函数本身内部获取反射构造函数

转载 作者:行者123 更新时间:2023-12-01 12:55:16 26 4
gpt4 key购买 nike

假设我有一个 Book 类,可以使用如下构造函数实例化它:

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 block 来包装该语句,因为我知道构造函数肯定存在并且它肯定是可访问的。所以我想知道Java是否提供了一种方法来获取对自身内部构造函数的引用,而无需检查这些异常。

最佳答案

恕我直言,你无法摆脱 try-catch。

“class.getConstructor”不确定您正在查询的构造函数的可用性,因此您是否确定可用性并不重要。

但是,您可以尝试使用谷歌反射。 Here是javadoc

我以前没有使用过它,但我确实看到了一种获取所有构造函数的方法。并且没有“抛出”

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

关于java - 在构造函数本身内部获取反射构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23966364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com