java两个同名一样的,参数类型都是同样的集合类型,但泛型的元素类型不

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java两个同名一样的,参数类型都是同样的集合类型,但泛型的元素类型不相关的知识,希望对你有一定的参考价值。

java两个同名一样的,参数类型都是同样的集合类型,但泛型的元素类型不同,这样的2个方法算是同一方法吗?怎么理解,以参数类型为准吗,不用看泛型类型吗?

是同一个方法,泛型修饰方法是说该方法可用于不同的泛型元素类型,可以看一下泛型的定义追问

哦,谢谢,明白了

参考技术A

错误的写法:

public void methodName(List<String> params) 
  

public void methodName(List<Integer> params) 
  

以上两个方法同时存在一个类里面是会报错的(方法重复了),参数只认类型,与泛型无关,与返回值无关,也就是说把void换成其他的也不行

 

正确的写法:

public void methodName(List<String> params) 
  

public void methodName(Map<String, String) params) 
  

 第一个方法的参数可以任意写,只要不是List且只有一个参数即可。

这叫方法的重载

本回答被提问者采纳
参考技术B 第一个不可能是null,我测试过,还有hashtable是支持泛型的
第二个没错
其实泛型的目的是为了在编译是检测出错误而不是在运行时
list
如果存入非integer类型会出现编译错误
list
如果存入非number类型会出现编译错误
numberlist
是list
类型的,只是指向一个只存有integer类型的arraylist,但是可以存其他类型的数据,只要是number或number子类

以上是关于java两个同名一样的,参数类型都是同样的集合类型,但泛型的元素类型不的主要内容,如果未能解决你的问题,请参考以下文章

Java中重载和重写的区别

Java基础语法

比较Java方法的重载与覆盖

函数模板与类模板

SQL入门之集合操作

java中重载,继承,重写和多态的区别