[英]What is the difference between toGenericString and toString in java.lang.reflect.Field
package com.sample;
import java.lang.reflect.Field;
class Demo {
int i;
}
public class DifferenceGenericStringAndToString {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
Class c = Demo.class;
Field[] fields = c.getDeclaredFields();
for(Field field : fields) {
System.out.println(field.toGenericString());
System.out.println(field.toString());
}
}
}
输出为:-
int com.sample.Demo.i
int com.sample.Demo.i
谁能告诉我这些方法之间有什么区别吗?
真正的答案是:如有疑问,请阅读javadoc :
返回描述此字段的字符串,包括其通用类型。 格式是该字段的访问修饰符(如果有),其后是通用字段类型,后跟一个空格,然后是声明该字段的类的完全限定名称,后跟一个句点,然后是该字段的名称。领域。
修饰符按照“ Java语言规范”中指定的规范顺序放置。 首先是公共的,受保护的或私有的,然后是其他修饰符,其顺序如下:静态,最终,瞬态,易失。
而对于toString()
来说:
返回描述此字段的字符串。 格式是该字段的访问修饰符(如果有),其后是字段类型,后跟一个空格,然后是声明该字段的类的完全限定名称,然后是一个句点,然后是该字段的名称。 。
正如名称和javadoc所散布的 :这与泛型有关 。 因此,您可能希望将测试代码更改为使用通用名称。
好吧,来自javadoc:
toGenericString()返回描述此Field的字符串,包括其通用类型。
toString()返回描述此字段的字符串。
因此,如果您的字段没有通用类型,则没有区别。
有关泛型的更多信息,请参见: https : //docs.oracle.com/javase/tutorial/java/generics/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.