栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java泛型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java泛型

泛型是什么?

内些官方的话我就不说了。我觉得泛型就是一种类型参数。

解释一下什么我这里的类型参数:就是方法里面传的是参数,类型参数就是这个参数是类型,你需要什么类型就传什么类型,像传参数那样传类型。

泛型可以用在方法上,可以用在类上,也可以用在接口上。
即:泛型方法,泛型类,泛型接口。

泛型方法

格式:

class fanxing{
    public  void action(T t){
        System.out.println("这里的泛型是什么类型?" + t);
    }
    
}

这就是泛型方法的格式,在返回类型之前先声明,告诉java说奥我要开始用泛型了啊!然后你的参数列表就可以用泛型接收类型了。
泛型参数能用来表示返回值类型即:

 public  T actions(T t ){
        return null;
    }
泛型类

就是可以确定类型的类
好!疑问了?我就奇了怪了,类本身就是类型,你还给我传类干甚?嫌我头发掉的太慢?

咱先看格式:

class fanxings{
    
    public T add(T e){
        return e;
    }
    public void add(T e,T a){
        System.out.println("我简单写一下,方法重载");
    }
    public void sub(T t){
        
    }
}

我刚发现泛型类里定义泛型方法不声明居然不会报错,但是前面内个普通类就必须声明

回归正题:
为什么需要泛型类,你可以这么想:
类是一个空白的纸盒子,泛型就是标签,你给盒子贴标签,再对盒内的东西进行操作。
盒子一旦贴上了标签,就是告诉别的类型不可以进我的盒子,我是名牌。我要对我的名牌东西进行操作了。

泛型接口
interface fanxinginter{
    void add(T t);
}

借口内的方法只对T这种类型进行操作。

泛型通配符

?代替具体的类型

class Car{
    
}
class BMW extends Car{
    
}
class Benchi extends Car{
    
}


class RMain{
    public static void main(String[] args) {
        List bs = new ArrayList<>();
        List cs = new ArrayList<>();
      
       //2.add(bs);
       // 3.add(cs);
        
    }
public static void add(List cars){
    
}

}

在2,3处的代码位置上 参数应该传什么类型呢,传bs,还是cs,按道理你应该传List这种类型或者他得子类,但是list和list都不是list的子类,你只是BMW和Benchi是Car的子类,所以怎么办呢?
你只能使用通配符
就像这样:

public static void add(List cars){
        
    }

这样就可以传任何类型的列表了,注意是任何类型,你又想只传车的子类怎么办?

泛型上下限
public static void add(List cars){
        
    }

使用上面的格式告诉java你要传的类型必须使car的子类哦!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/963138.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号