gpt4 book ai didi

java - 理解java泛型方法

转载 作者:行者123 更新时间:2023-12-01 09:56:11 24 4
gpt4 key购买 nike

输出始终为In OBJECT。因为返回类型在所有情况下都是 void。
但为什么它不去 m1(Integer s) 呢?如果没有类型转换,是否可以调用 m1(Integer s)?

package test;

public class test_class {

public static void m1(Integer s){
System.out.println("IN INT");
}

public static void m1(Object s){
System.out.println("IN OBJECT");
}

public static <Integer> void m2(Integer t){
m1(t);
}

public static void main(String[] args) {
// TODO Auto-generated method stub

test_class.m2(12);
}

}

最佳答案

我似乎不明白泛型是如何工作的,你以某种方式将它与重载混合在一起。如果您声明泛型方法,则类型参数(在您的情况下为 Integer )是一个变量(通常为 T )。在您的情况下,类型参数称为 Integer,它以某种方式干扰/隐藏参数的类型。

只需删除 <Integer>来自m2然后你就得到了预期的结果。

关于java - 理解java泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37194193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com