我nested static class喜欢:
package a.b
public class TopClass {
public static class InnerClass {
}
}
Run Code Online (Sandbox Code Playgroud)
我想实例化,Class.forName()但它提出了一个ClassNotFoundException.
Class.forName("a.b.TopClass"); // Works fine.
Class.forName("a.b.TopClass.InnerClass"); // raises exception
TopClass.InnerClass instance = new TopClass.InnerClass(); // works fine
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题?
你做.
Jon*_*eet 87
嵌套类使用"$"作为分隔符:
Class.forName("a.b.TopClass$InnerClass");
Run Code Online (Sandbox Code Playgroud)
这样,JRE可以使用点来确定包,而不必担心嵌套类.如果你看一下生成的类文件,你会发现这个TopClass$InnerClass.class.
(编辑:对原始的不准确性表示抱歉.头部被困在.NET中,直到我想到文件名......)
内部类通过美元符号访问:
Class.forName("a.b.TopClass");
Class.forName("a.b.TopClass$InnerClass");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14086 次 |
| 最近记录: |