Object和泛型和?的区别

在这里插入图片描述
使用泛型的好处
1、不需要做强制类型转换

2、编译时更安全。如果使用Object类的话,你没法保证返回的类型一定是Foo,也许是其它类型。这时你就会在运行时得到一个类型转换异常(ClassCastException)

3、泛型不单可以向下限制,如<? extends Collection>,还可以向上限制,如<? super Double>,表示类型只能接受Double及其上层父类类型,如Number、Object类型的实例。

4、一个类型变量或通配符可以有多个限定,例如:T extends Comparable & Serializable

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
泛型类是指在类的定义中使用类型参数,从而实现类中方法和属性的通用性和复用性。一般情况下,泛型类用于定义一类通用的数据结构或算法,使其能够适应不同类型的数据。 下面是一个简单的泛型类的定义和使用示例: ```java public class ArrayList<T> { private T[] array; private int size; public ArrayList() { this.size = 0; this.array = (T[]) new Object[10]; } public void add(T item) { if (size == array.length) { T[] newArray = (T[]) new Object[array.length * 2]; System.arraycopy(array, 0, newArray, 0, array.length); array = newArray; } array[size++] = item; } public T get(int index) { return array[index]; } } ``` 上面的代码定义了一个泛型类 ArrayList,可以存储任意类型的元素,包括整数、字符串、自定义对象等。在类名后面加上尖括号和类型参数 T,表示这是一个泛型类,T 是一个占位符,表示实际的类型将在使用时确定。 在类的成员变量和方法中,可以使用类型参数 T 来代替具体的类型,从而使该类的实例能够适应不同的数据类型。例如,上面的代码中使用了类型参数 T 来定义了一个数组 array,以及 add 和 get 方法,这些方法可以接受任意类型的参数和返回值。 下面是一个使用 ArrayList 类的示例: ```java ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); System.out.println(list.get(1)); // 输出 2 ``` 在这个示例中,我们创建了一个 ArrayList 的实例,并指定类型参数为 Integer。然后向列表中添加了三个整数,最后通过 get 方法获取了列表中的第二个元素,并将其输出。由于我们使用了泛型类,因此可以适应不同的数据类型,例如 String、Double 等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值