Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是编译器隐式方法?_Java_Enums - Fatal编程技术网

Java 什么是编译器隐式方法?

Java 什么是编译器隐式方法?,java,enums,Java,Enums,对这一问题的评论如下: @jacktrades:它是一种隐式方法,只存在于 编译器。因此,基类不能用 相同的名称,因此它不会自动包含在 生成的Javadocs。 docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.9.2– 3月5日9:32托本 由于此方法仅存在于编译器中,这是否意味着它在Enum对象在jdk1.5中可用之前就存在?对于仅为编译器的其他对象,是否存在此方法。java.util.Map包含values()方法,但这是

对这一问题的评论如下:

@jacktrades:它是一种隐式方法,只存在于 编译器。因此,基类不能用 相同的名称,因此它不会自动包含在 生成的Javadocs。 docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.9.2– 3月5日9:32托本


由于此方法仅存在于编译器中,这是否意味着它在Enum对象在jdk1.5中可用之前就存在?对于仅为编译器的其他对象,是否存在此方法。java.util.Map包含values()方法,但这是有文档记录的,所以是显式的?为什么要将此方法定义为隐式。值,这是枚举类型上有用的方法,因此它应该是显式的,并且在枚举对象类型上可用?

因为此方法仅存在于编译器中,这是否意味着它在枚举对象在jdk1.5中可用之前就存在?

不,它是为Java5添加的

此方法是否仅适用于其他编译器对象。java.util.Map包含values()方法,但这是有文档记录的,因此是显式的?

那不一样
Map.values()
是一种普通方法,是
Map
接口的一部分。对于任何枚举类型,values()都是静态方法。关键的区别在于静态方法不会被继承,因此将
values()
添加到java.lang.Enum将不会有帮助。另一个隐式方法是
[EnumType].valueOf(字符串名称)

为什么要定义此方法。值是隐式的,这是枚举类型上的一个有用方法,因此它应该是显式的?


同样,它不可能是显式的,因为静态方法不是继承的。对于
valueOf
java.lang.Enum
中有一个模拟
valueOf(类类型、名称)
方法。我不确定为什么那里没有
值(类类型)
;这对我来说是有意义的。但是有一个
Class.getEnumConstants()
,它做同样的事情。

有一个
Class.getEnumConstants()