繁体   English   中英

java.lang.reflect.Field中的toGenericString和toString有什么区别

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM