集合.泛型

  • Java泛型是JDK1.5中引入的一个新特性,其本质是参数化类型,把类型作为参数传递

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

  • 语法:<T,...> T称为类型占位符,表示一种引用类型

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

泛型类

复制代码
package jihe;

/**
 * 泛型类
 * 语法:类名<T>
 * T是类型占位符,表示一种引用类型,如果编写多个使用逗号隔开
 */
public class Generic<T> {
    //使用泛型T
    //1.创建变量
    T t;

    //2.泛型作为方法的参数
    public void show(T t){
        System.out.println(t);
    }

    //3.泛型作为方法的返回值
    public T getT(){
        return t;
    }
}
复制代码
复制代码
package jihe;

public class TestGeneric {
    public static void main(String[] args) {
        //使用泛型类创建对象
        //注意:1.泛型只能使用引用对象 2.不同泛型类型对象之间不能相互赋值
        Generic<String> generic = new Generic<String>();
        generic.t = "hello";
        generic.show("大家好");
        String string = generic.getT();

        Generic<Integer> generic2 = new Generic<Integer>();
        generic2.t = 100;
        generic2.show(200);
        Integer integer = generic2.getT();
    }
}
复制代码

泛型接口

复制代码
package jihe;

/**
 * 泛型接口
 * 语法:接口名<T>
 *注意:不能使用泛型静态常量
 */
public interface Interface<T> {
    String name = "张三";

    T server(T t);
}
复制代码
复制代码
package jihe;

public class InterfaceImpl implements Interface<String> {

    @Override
    public String server(String t) {
        System.out.println(t);
        return t;
    }
}
复制代码
复制代码
package jihe;

public class InterfaceImpl2<T> implements Interface<T>{
    @Override
    public T server(T t) {
        System.out.println(t);
        return t;
    }
}
复制代码
复制代码
package jihe;

public class TestGeneric {
    public static void main(String[] args) {
InterfaceImpl impl = new InterfaceImpl();
        impl.server("xxxxx");

        InterfaceImpl2<Integer> impl2 = new InterfaceImpl2<>();
        impl2.server(1000);
    }
}
复制代码

泛型方法

复制代码
package jihe;

/**
 * 泛型方法
 * 语法:<T>返回值类型
 */
public class GenericMethod {
    //泛型方法
    public <T> T show(T t){
        System.out.println("泛型方法"+t);
        return t;
    }
}
复制代码
复制代码
package jihe;

public class TestGeneric {
    public static void main(String[] args) {
 GenericMethod genericMethod = new GenericMethod();
        genericMethod.show("加油");
        genericMethod.show(1000);
    }
}
复制代码

 

posted @   sususyq-  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示