java基础篇(java的泛型)

        Java的泛型(Generics)是Java语言的一项特性,它允许你在定义类、接口和方法时使用类型参数,从而使代码更加通用和类型安全。泛型的主要目的是提供编译时类型检查和避免类型转换的麻烦。

以下是一些关于Java泛型的基本概念和用法:

泛型类

你可以定义一个泛型类,其中类型参数用尖括号(<>)括起来。例如:

public class Box<T> {
    private T content;

    public void setContent(T content) {
        this.content = content;
    }

    public T getContent() {
        return content;
    }
}

在这个例子中,Box类使用了一个类型参数T,你可以在创建Box对象时指定具体的类型:

Box<String> stringBox = new Box<>();
stringBox.setContent("Hello");
String content = stringBox.getContent();

泛型方法

你也可以定义泛型方法,方法的类型参数在返回类型之前声明:

public class Util {
    public static <T> void printArray(T[] array) {
        for (T element : array) {
            System.out.println(element);
        }
    }
}

CopyInsert

你可以这样调用泛型方法:

String[] strings = {"Hello", "World"};
Util.printArray(strings);

CopyInsert

泛型接口

泛型接口的定义和泛型类类似:

public interface Container<T> {
    void add(T item);
    T get(int index);
}

实现泛型接口时,可以选择指定类型参数:

public class StringContainer implements Container<String> {
    private List<String> items = new ArrayList<>();

    @Override
    public void add(String item) {
        items.add(item);
    }

    @Override
    public String get(int index) {
        return items.get(index);
    }
}

通配符

Java泛型还支持通配符(Wildcards),用于表示未知类型。通配符有三种形式:

  • ?:无界通配符,表示任何类型。
  • ? extends T:上界通配符,表示类型TT的子类型。
  • ? super T:下界通配符,表示类型TT的父类型。

例如:

public void printList(List<?> list) {
    for (Object item : list) {
        System.out.println(item);
    }
}

类型擦除

        Java泛型在编译时会进行类型擦除(Type Erasure),这意味着在运行时泛型类型信息会被擦除,变成原始类型。例如,List<String>在运行时会变成List

泛型的限制

  • 不能实例化类型参数。
  • 不能创建类型参数的数组。
  • 不能使用基本类型作为类型参数。

        希望这些信息能帮助你更好地理解Java泛型。如果你有具体的问题或需要进一步的示例代码,请告诉我。

 

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值