当前位置:首页 » 编程语言 » java泛型继承

java泛型继承

发布时间: 2025-02-10 01:47:18

‘壹’ java 中的 -> 是什么意思

“->”是Java 8新增的Lambda表达式中,变量和临时代码块的分隔符,即:
(变量)->{代码块}
如果代码块只有一个表达式,大括号可以省略。如果变量类型可以自动推断出来,可以不写变量类型。

‘贰’ JAVA泛型有什么作用泛型是实泛型还是伪泛型

泛型好处:

泛型简单易用

类型安全 泛型的主要目标是实现java的类型安全。 泛型可以使编译器知道一个对象的限定类型是什么,这样编译器就可以在一个高的程度上验证这个类型

消除了强制类型转换 使得代码可读性好,减少了很多出错的机会

Java语言引入泛型的好处是安全简单。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。

泛型的实现原理

泛型的实现是靠类型擦除技术 类型擦除是在编译期完成的 也就是在编译期 编译器会将泛型的类型参数都擦除成它的限定类型,如果没有则擦除为object类型之后在获取的时候再强制类型转换为对应的类型。 在运行期间并没有泛型的任何信息,因此也没有优化。

泛型不考虑继承

List 类型 是否 可以 赋值为 List类型 ?
答案是不可以的
虽然说在赋值之后 String类型可以当做 Object类型使用 但是还是会出现问题

参考:《2020最新Java基础精讲视频教程和学习路线!》

‘叁’ Java中定义泛型<T>时,怎么获得泛型的类型

T.getClass()或缺清者T.class都是非法的,因为T是泛型变量。
由于一个类的类型是什么是宴扮梁在编译期处理的,故不能在运行时直接在Base里得到T的实际类型。
有一种变通的实现方式:
import java.lang.reflect.Array;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class Generic extends Base<String> {
public static void main(String[] args) {
Generic c = new Generic();
System.out.println(c.array);
}

Object array ;
public Generic() {
array = Array.newInstance(getGenericType(0), 100);
}
}

class Base<T> {
public Class getGenericType(int index) {
Type genType = getClass().getGenericSuperclass();
if (!(genType instanceof ParameterizedType)) {
return Object.class;
}
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
if (index >= params.length || index < 0) {
throw new RuntimeException("Index outof bounds");
}
if (!(params[index] instanceof Class)) {
return Object.class;
}
return (Class) params[index];
}
}
其中Base<T>是泛型类,在父类中晌运声明getGenericType,子类继承具体的Base<String>,那么在子类中就可以通过getGenericType(0)获取到String的class.

热点内容
纸币如何配置财富 发布:2025-02-10 22:00:57 浏览:706
数据库中存放的是视图的 发布:2025-02-10 21:57:46 浏览:628
服务器如何做到独立防护 发布:2025-02-10 21:50:45 浏览:108
摩斯密码从哪里来 发布:2025-02-10 21:34:50 浏览:440
蝴蝶结的密码是多少 发布:2025-02-10 21:34:42 浏览:128
php迭代数组 发布:2025-02-10 21:19:35 浏览:794
编程语言指数 发布:2025-02-10 20:54:34 浏览:185
图案加密法 发布:2025-02-10 20:49:47 浏览:993
压缩推送 发布:2025-02-10 20:44:00 浏览:429
android中的缓存 发布:2025-02-10 20:27:27 浏览:856