【发布时间】:2014-06-30 19:42:35
【问题描述】:
如何访问另一个类中的内部枚举类?例如:
public class Foo {
enum Bar {
ONE, TWO, FOUR, EIGHT, SIXTEEN
}
// ...methods here
}
我正在尝试访问Foo.Bar 的课程:
public class FooTest {
private Foo f;
@Before
public void setUp() throws Exception {
f = new Foo();
}
public void testCase1() {
assertEquals(Bar.ONE, f.climbUp());
}
}
我试过Foo.Bar.ONE、Bar.ONE 以及使用Foo.class.getDeclaredField("Bar") 创建一个新变量,但这些似乎都不起作用。 getDeclaredClasses() 似乎让我 $Bar 但我无法从那里访问任何内容。
更新:我不允许修改类Foo
【问题讨论】:
-
公开吧:
public static enum Bar -
“不工作”是什么意思(编译错误?运行时错误?测试失败?)这与反射有什么关系?
-
如果您需要枚举不能从外部世界获得,但希望它可用于测试 - 默认级别是
package-private,因此您可以在同一个包中进行测试。
标签: java unit-testing enums