动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

详解Java泛型的使用

05-13 11:31 694浏览
举报 T字号
  • 大字
  • 中字
  • 小字

Java语言中引入泛型是一个较大的功能增强。不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类库也进行了很大的改动,许多重要的类,比如集合框架,都已经成为泛型化的了。与此同时,提高了代码的运行效率,加强了程序的性能。可以说Java泛型的存在给Java编程带来了巨大的变化。那么,到底应该怎样使用Java泛型呢?下面我们就来看看泛型类、泛型接口、泛型方法的使用。

Java泛型本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

  • 泛型类:public class Test<T>}{} T表示未知类型
  • 泛型接口:public interface Test<T>{} 和定义类一样
  • 泛型方法:public <T> void Test(T name){}

1.泛型类的使用

泛型类在java中有着很重要的地位,其中我们用的最多的就是ArrayList,HashMap,HashSet.

既然是带你看懂Java泛型,肯定不能源码里面的那些容器类呀,那些容器类都已经很完善了如果要带你们看的话,肯定会越看越晕的,所以我们自己定义一个泛型类出来。

//这个T可以换成随便一个字母 ,只不过我写泛型都用的T,你可以换成A,B,C...
public class Test<T> {
    T name;
    public Test(T name){
        this.name = name;
    }
    public T getName() {
        return name;
    }

    public void setName(T name) {
        this.name = name;
    }

//如果不传泛型类型的话,那么默认的就是Object型什么都可以传
Test test = new Test("hello");
//传入的数据类型不为基本类型,否则编译期会报错,开头我解释过为什么会报错了
Test<Integer> test1 = new Test<>(418);

2.泛型接口的使用

泛型接口的定义和泛型类的定义差不多,我们常见的泛型接口就是,List,Map,Set.

首先老规矩我们自己定义一个泛型接口。

public interface Test<T>{
    T getName(T name);
}

//如果实现接口的时候不传入数据类型的话,需要将泛型声明也要写到类中要不然会报错
class Test1<T> implements Test<T>{

    @Override
    public T getName(T name) {
        return null;
    }
}

//实现接口的时候传入数据类型的话,就不用把泛型声明也写到类中了
class Test2 implements  Test<String>{

    @Override
    public String getName(String name) {
        return name;
    }
}

3.泛型方法的使用

泛型方法的使用

public <T> void getName(T name){} 
public <T,K> void getNameAndValue(T name, K value){}
public <T,K,V> void getNameAndValueAndV(T name, K value, V v){}//总的来说就是参数需要多少

俗话说,授人以鱼,不如授人以渔,我们只要能够掌握上述的动力节点在线为大家总结的Java泛型的使用方法,就能够在Java泛型的难题中披荆斩棘,所向无前!

0人推荐
共同学习,写下你的评论
0条评论
代码小兵345
程序员代码小兵345

44篇文章贡献168626字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Mybatis返回值类型

代码小兵87207-15 12:10

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

深入理解JVM虚拟机

杨晶珍05-12 17:30

发评论

举报

0/150

取消