Java泛型总结

本文详细介绍了Java泛型的概念及其应用场景,包括泛型接口、泛型类、多泛型、泛型方法、泛型数组等内容,并提供了丰富的代码示例。此外还讲解了通配符在泛型中的使用以及多泛型间的约束关系。

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

1、泛型主要是用来年解决数据类型安全的问题,用标识来代替属性的类型或者返回值的类型

2、在使用泛型的时候可以有以下几种形式:
泛型接口
泛型类
通配符做泛型参数
泛型方法
泛型数组

3、以下通过代码说明:

package com.sun.demo;

//一、定义泛型接口
interface Father <T> {
        public void say();
}
//二、定义泛型类
//三、多泛型情况

class son<T ,K> implements Father<T>{

        private T task ;
        private K kit ;

        public son (T task,K kit){
               this .task = task;
               this .kit = kit;
       }

        public son(){

       }

        public void setKit(K kit) {
               this .kit = kit;
       }
        public K getKit() {
               return kit ;
       }

        public void setTask(T task) {
               this .task = task;
       }

        public T getTask() {
               return task ;
       }

        @Override
        public void say() {
               //输出相应泛型对象的时候最好重写toString方法
              System. out .println(this .getTask());
              System. out .println(this .getKit());
       }


}

public class Geneic1 {

        public static void main(String[] args) {

              son<String, String> son1 = new son<String, String>();
              son1.setKit( "K" );
              son1.setTask( "T" );
               callSon(son1);
              son<String , Integer> son = new son<String , Integer>();
              son.setTask( "son" );
              son.setKit(100);
              son.say();
              System. out .println(show( "String" ));

              Double arr[]  = {1.2 , 3.0 , 4.5};
               showArrays(arr);
       }

        public static <T>T show( T t){
               return t;
       }
        //四、声明泛型方法,注意其格式
        //1、返回值前加泛型
        //2、参数为泛型
        public static <T> void showArrays(T arrays[]){
               for (int i = 0; i < arrays. length; i++) {
                     System. out .println(arrays[i]);
              }
       }
        //五、对象中的泛型不明确时用通配符?代替
        public static void callSon(son<? , ?> i){
              i.say();
       }
}

4、多泛型时候的注意事项:

class Demo<T , S extends T>{}

这样可以声明多泛型之间的关系

5、泛型的其他注意事项:
泛型不是异变的,这也是泛型是安全的原因,即声明好一个泛型方法之后,其参数即为固定如
public void say(myclass s)之后不能通过 myclass 类型的参数调用say方法,此时编译不会通过

泛型不止可在容器中使用,见以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值