从其他类创建Private Inner类的对象

时间:2014-10-08 09:48:10

标签: java android reflection junit private-members

我有一个场景,其中有一个公共外部类和一​​个私有内部类。现在我想创建一个私有内部类的对象,用于单元测试其中的方法。

public class MyOuterClass {
    public MyOuterClass() { }

    private class MyInnerClass {
        public MyInnerClass() { }
    }
}

这是我尝试从其他测试类创建“MyInnerClass”对象的场景。我找到了使用私有构造函数创建类对象的解决方案,但这不是我所需要的。请帮我解决一下这个。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

您有三种选择:

  1. 将内部类包设为私有(而不是默认访问级别),您可以通过将测试代码放在同一个包中来访问它。

  2. 通过覆盖访问限制,使用反射来访问它。

  3. 重新思考您的架构。您可能需要直接测试私有内部类,但更常见的是测试外部类,并通过这样做来测试内部类。

答案 1 :(得分:0)

private个对象的整个概念是它只能由它所封装的类访问。你不能直接从另一个类创建一个私有对象的实例。