如何在Java中创建合成字段?
java中的合成字段只能在运行时创建吗?如果不是:在编译时是否有符合标准的方法(不更改类文件中的某些字节)
Jon*_*eet 15
它们是由编译器在语言的"奇怪"需要时创建的.一个简单的例子是使用内部类:
public class Test
{
class Inner
{
}
}
Run Code Online (Sandbox Code Playgroud)
的Test.Inner类将有一个合成的字段来表示的相应实例Test的类.
我们可以稍微扩展此代码以显示该字段:
import java.lang.reflect.*;
public class Test
{
public static void main(String[] args)
{
for (Field field : Inner.class.getDeclaredFields())
{
System.out.println(field.getName() + ": " + field.isSynthetic());
}
}
class Inner
{
}
}
Run Code Online (Sandbox Code Playgroud)
使用我的编译器,打印:
this$0: true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3820 次 |
| 最近记录: |