为什么getName不包含在java中。朗。反思。可访问对象接口?
为什么getName
不包含在java.lang.reflect.AccessibleObject
接口中?据我所知,它的所有子类(Method
,Field
,Constructor
等)都有这个方法,所以在接口上使用它会非常方便
你可以在下面搜索框中键入要查询的问题!
为什么getName
不包含在java.lang.reflect.AccessibleObject
接口中?据我所知,它的所有子类(Method
,Field
,Constructor
等)都有这个方法,所以在接口上使用它会非常方便
# 1 楼答案
我猜(基于JavaDoc)该接口的目的是提供对反射类型的access修饰符的访问
这个名字对所有人来说都很常见,但只是控制可访问性的一个不同方面。也许他们可以提供类似
NameableObject
的接口,提供对该对象名称的访问。我不能告诉你为什么他们没有,但我理解将方面排除在AccessibleObject
接口之外的决定# 2 楼答案
如果你看一下
@since
标签,它最初只是用来访问反射对象的可访问性。奇怪的是,它不是abstract
。尽管构造函数被记录为“构造函数:仅由Java虚拟机使用”它是protected
,所以,作为nofinal
,它是子类的getName
不适合该课程,因为它是1.5之前的课程。从1.5版本开始,它就被添加了注释,注释可能是空的。但是,名称不能为空,并且不能向子类API类添加abstract
方法。此外,如果您使用的是注释,则可能不应该再依赖该名称(向后兼容除外)