java 方法泛型参数_java – 泛型方法参数行为

本文通过几个具体的示例,详细解析了Java中泛型方法的使用方式及其类型推断过程,探讨了不同类型参数组合下的调用行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

考虑下面的通用方法程序:

class GenericTest {

int i;

}

public class GenericMethod {

public List addList(T t, T t1) {

List list=new ArrayList();

list.add(t);

list.add(t1);

return list;

}

public List addList(T t, T t1, List l) {

List list=new ArrayList();

list.add(t);

list.add(t1);

list.addAll(l);

return list;

}

public static void main(String[] args) {

GenericMethod gm=new GenericMethod();

List l=gm.addList(new Integer(42), "java"); //Line 21

System.out.println(l);

List list = new ArrayList();

list.add(false);

List l2 = gm.addList("java", new Integer(42), list); //Line 25

System.out.println(l2);

GenericTest gt = new GenericTest();

List l3 = gm.addList("java", gt); //Line 28

System.out.println(l3);

List l4 = gm.addList(gm, gt); //Line 30

System.out.println(l4);

List lst = new ArrayList();

lst.add(new Object());

List l5 = gm.addList("java", new Integer(42), lst); //Line 34

System.out.println(l5);

System.out.println(l5.get(0));

}

}

在第21行,因为该方法是使用String和Integer调用的,所以它使用Object for T调用方法.对于第25行也是如此,因为List也有类型Object,它使用Object for T调用方法.使用其他类型的Calling List将产生错误.我的推论是否正确?

我无法想到的是

1)传递String和类时的第28行,

2)当两个不同的班级通过时,第30行,

3)当没有类型声明的List作为参数传递时的第34行.

任何人都可以分享他们的知识来清除我的理解任何帮助,将不胜感激!谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值