java使用packageprivate构造函数从包外部访问最终静态类
我有一个无法修改的类,如下所示:
public class ValueSupplier {
public static final class Value {
private final Long id;
private final String value1;
private final String value2;
Value(Long id, String value1, String value2) {
this.id = id;
this.value1 = value1;
this.value2 = value2;
}
// getters omitted
}
我是否可以在类所在的包之外使用静态值类,而不使用反射?我想不是,但值得一问。列表是从ValueSupplier中的某个方法返回的,希望模拟该方法,但无法返回列表,因为我没有访问该包的权限
如果使用反射,最简单、最清晰的解决方案是什么
编辑: 我的意思是通过构造函数创建一个实例——这是我的问题
# 1 楼答案
如果不能修改嵌套类,反射API是唯一的选项
其基本思想是获取一个构造函数(1),通过^{} 访问它(2),然后调用它(3)