使用forName通过main

时间:2018-10-04 14:13:20

标签: java reflection junit

在我的主模块中,我有一些使用forName()的代码。在JUnit测试中,我创建了一个哑类,试图从主模块中检索它。

public class TestClass {
    public static class DummyClass implements OtherClass { ... }

@Test
void testCase() {
    ParserHandler parserHandler = new ParserHandler();
    String fullClassName = DummyEntity.class.getCanonicalName();

    // fullClassName is used in the following method which uses forName()
    parserHandler.run(fullClassName);
}

每当我尝试这样做,我都会得到:

java.lang.ClassNotFoundException: com.x.y.TestClass.DummyEntity

我该如何解决?

1 个答案:

答案 0 :(得分:0)

规范名称非常适合用于良好的格式设置,但这不是您要查找的。您应该改用Class#getName

String fullClassName = DummyEntity.class.getName();