假设我有一个Class对象,它代表一个匿名的内部类.有什么办法可以为它创建的类获取编译器的编号吗?例如,我在这里有一个类,其编译导致了一个
Thing$1.class
Run Code Online (Sandbox Code Playgroud)
正在创建的文件.如何从Class对象中找出这个数字?
这有效:
Object o =new Object(){};
String name = o.getClass().getName();
int number = Integer.parseInt(name.substring(name.lastIndexOf('$')+1));
Run Code Online (Sandbox Code Playgroud)
但是我无法想象你能用这个数字做些什么.更重要的是,这种匿名类的命名方案是AFAIK,不受语言或VM规范的约束.这是一个可能会改变的实现细节.
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |