Java抽象类(Generic)小结

今天在学校上复习课,TA回顾了抽象类的用法,其中有几个重要的知识点之前自己不太懂的,稍微记录一下:

  1. Once we declare a generic class with type T, we can use instanceof to check if variables are of this type False
    关于我们是否可以用instanceof来检测变量的数据类型,答案是不行的。
  2. 我们是否可以做以下代码
T[] myArray = new T[6];

答案也是否定的。我们不能用抽象类去生成数组。
不过我们可以这么做:

T[] myArray = (T[]) new Object[6];
  1. 关于 **<? super T>**的使用
    首先,这么写的代表 T或者T的supertype(父类)
    那么,这么写的好处是什么呢,什么时候可以用到呢,接下来是一个小例子:
class Number implements Comparable<Number> {
	public int compareTo(Number n) {
	}
}
class naturalNumber extends Number {

} // have the same compareTo method as Number

如果我们不用 <? super T>,如:

public class plane<T extends Comparable<T>> {
}

那么,下一行的代码便是错的

plane <naturalNumber> a = new plane<>();
// 因为naturalNumber 没有 extends Comparable<naturalNumber>

只有使用了

public class plane<T extends Comparable<? super T>> {
}

之前那个代码才是对的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值