集合框架之泛型

集合框架之泛型

  • 泛型<>约束,避免类型转换之间的问题

本质:是参数化类型,把类型作为参数传递

常见形式:泛型类、泛型接口、泛型方法

好处:1.提高代码的重用性;2.防止类型转换异常,提高代码的安全性

 

复制代码
package com.oop.demo11;

public class TestGeneric {
    public static void main(String[] args) {
        //使用泛型类创建对象
        //注意:1.泛型只能使用引用类型;2.不同泛型对象不能相互赋值
        MyGeneric<String> myGeneric = new MyGeneric<String>();//尖括号里只能填引用类型
        myGeneric.t="hello";
        myGeneric.show("大家好");
        String string=myGeneric.getT();
        System.out.println(string);
        System.out.println("=================");
        MyGeneric<Integer> myGeneric2 = new MyGeneric<Integer>();
        myGeneric2.t=100;
        myGeneric2.show(200);
        Integer integer=myGeneric2.getT();
        System.out.println(integer);

    }
}


package com.oop.demo11;

/**
 * 泛型类
 * 语法:类名<T>
 * T表示类型占位符,表示一种引用类型,如果编写多个使用逗号隔开
 */
public class MyGeneric<T> {
    //使用泛型T
    //1.创建变量
    T t;
    //2.作为方法的参数
    public  void show(T t){
        System.out.println(t);
    }
    //3.泛型作为方法的返回值
    public T getT(){
        return t;
    }

}
复制代码
  • 泛型接口

复制代码
package com.oop.demo11;

public class TestGeneric {
    public static void main(String[] args) {
    MyInterfaceImp1 imp1=new MyInterfaceImp1();
        imp1.server("xxxxxxxxxxx");
//在创建对象时再确定T的类型MyInterfaceImp2<Integer> imp2=new MyInterfaceImp2<Integer>(); 
imp2.server(1000);
}
}

package com.oop.demo11;

/** * 泛型接口
* 语法:接口名<T>
*/ public interface MyInterface<T> {
String name
="张三";
T server(T t);
}

package com.oop.demo11;
public class MyInterfaceImp1 implements MyInterface<String> {
@Override
public String server(String t) {
System.out.println(t);
return t;
}
}

package com.oop.demo11;
public class MyInterfaceImp2<T>implements MyInterface<T>{
@Override
public T server(T t) {
System.out.println(t);
return t;
}
}
复制代码

 

  • 泛型方法

复制代码
package com.oop.demo11;

public class TestGeneric {
    public static void main(String[] args) {
    MyGenericMethod myGenericMethod = new MyGenericMethod();
        //类型由传递的数据决定
        myGenericMethod.show("中国加油");
        myGenericMethod.show(200);
        myGenericMethod.show(3.14);

    }
}


package com.oop.demo11;

/**
 * 泛型方法
 * 语法:<T>方法返回值类型
 */
public class MyGenericMethod {
    //泛型方法
    public <T> void show(T t){
        System.out.println("泛型方法"+t);

    }

}
复制代码

 

posted @   胖虎9  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示