java – T getInstance(final类型)为什么不用Class?
发布时间:2020-12-15 05:18:09 所属栏目:Java 来源:网络整理
导读:所以,我正在深入研究 Java并对这种类型参数的使用感到好奇. TT getInstance 然后是arg ClassT type 我在这里有点困惑,因为如果我们需要一个返回类型,由T表示那么为什么arg不是相同的…例如 private static String getInstance(String arg) 所以我想它会是 pr
所以,我正在深入研究
Java并对这种类型参数的使用感到好奇.
<T>T getInstance 然后是arg Class<T> type 我在这里有点困惑,因为如果我们需要一个返回类型,由T表示那么为什么arg不是相同的…例如 private static String getInstance(String arg) 所以我想它会是 private static Class<T> getInstance(final Class<T> type) 所以,我很困惑为什么返回类型与参数的表达式有所不同 解决方法
没有必要使返回类型与参数类型相同,并且决不是任何规则.
当方法定义为 private static <T> T getInstance(final Class<T> type) 它表示返回对象的类型为T,而传递给该方法的参数是参数化为T的泛型java.lang.Class类型的实例. 这意味着可以按如下方式调用该方法: String string = getInstance(String.class); 因此,此方法采用类型为Class的实例,并返回与此Class参数对应的类型的对象. 另一方面,当该方法被定义为 private static <T> T getInstance(final T type) 然后你被迫传递一个T类型的对象来获取实例.想象一下,它将被调用如下: String string = getInstance("a"); 注意String类型的对象“a”与Class类型的String.class有很大不同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |