我有一个场景,其中有一个公共外部类和一个私有内部类。现在我想创建一个私有内部类的对象,用于单元测试其中的方法。
public class MyOuterClass {
public MyOuterClass() { }
private class MyInnerClass {
public MyInnerClass() { }
}
}
这是我尝试从其他测试类创建“MyInnerClass”对象的场景。我找到了使用私有构造函数创建类对象的解决方案,但这不是我所需要的。请帮我解决一下这个。 提前谢谢。
答案 0 :(得分:1)
您有三种选择:
将内部类包设为私有(而不是默认访问级别),您可以通过将测试代码放在同一个包中来访问它。
通过覆盖访问限制,使用反射来访问它。
重新思考您的架构。您可能需要直接测试私有内部类,但更常见的是测试外部类,并通过这样做来测试内部类。
答案 1 :(得分:0)
private
个对象的整个概念是它只能由它所封装的类访问。你不能直接从另一个类创建一个私有对象的实例。