gpt4 book ai didi

java - 对 .class 字段的反射(reflection)

转载 作者:太空宇宙 更新时间:2023-11-04 08:13:05 25 4
gpt4 key购买 nike

阅读类加载,http://onjava.com/pub/a/onjava/2005/01/26/classloading.html ,遇到了——“……每当我们编译任何 Java 文件时,编译器都会在发出的字节代码中嵌入一个名为 class 的公共(public)、静态、最终字段,其类型为 java.lang.Class。由于该字段是公共(public)的,因此我们可以使用点分符号访问它,如下所示:

java.lang.Class klass = Myclass.class;…………”

我尝试使用反射访问这个字段(Myclass.class),这很疯狂,我同意,但仍然:)并且我得到了 java.lang.NoSuchFieldException: class

Myclass myObject = new Myclass; 
System.out.println(myObject.getclass().getField("class"));

是运行时而不是编译器添加了静态 .class 字段吗?即使如此,为什么不能使用反射来访问它?

最佳答案

这本身不是字段访问,而是 expression Java 语言语法的一部分看起来只是字段访问。我认为编译器可以将这样的合成字段放入类文件中,尽管我不知道有哪个编译器可以这样做。

关于java - 对 .class 字段的反射(reflection),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com