Java 泛型

简介: Java 泛型

泛型类
//此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
//在实例化泛型类时,必须指定T的具体类型
public class Generic{
private T key;

public Generic(T key) {
    this.key = key;
}

public T getKey(){
    return key;
}

}
泛型接口
public interface Generator {
public T next();
}

// 实现泛型接口时,可以传入或者不传实际类型:
public class FruitGenerator implements Generator
public class FruitGenerator implements Generator
泛型方法
// 只有声明了的方法才是泛型方法,泛型类中的使用了泛型的成员方法并不是泛型方法
// 此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
public T genericMethod(Class tClass) {
T instance = tClass.newInstance();
return instance;
}
静态方法要使用泛型的话,必须将静态方法也定义成泛型方法
public class StaticGenerator {
public static void show(T t){

}

}
泛型方法中添加上下边界的时候,必须在权限声明与返回值之间的上添加上下边界,即在泛型声明的时候添加。
// 编译器会报错
public T showKeyName(Generic container)

public T showKeyName(Generic container){
System.out.println("container key :" + container.getKey());
T test = container.getKey();
return test;
}

相关文章
|
9天前
|
安全 Java 编译器
Android面试题之Java 泛型和Kotlin泛型
**Java泛型是JDK5引入的特性,用于编译时类型检查和安全。泛型擦除会在运行时移除类型参数,用Object或边界类型替换。这导致几个限制:不能直接创建泛型实例,不能使用instanceof,泛型数组与协变冲突,以及在静态上下文中的限制。通配符如<?>用于增强灵活性,<? extends T>只读,<? super T>只写。面试题涉及泛型原理和擦除机制。
16 3
Android面试题之Java 泛型和Kotlin泛型
|
2天前
|
存储 安全 Java
Java泛型(1)
Java泛型(1)
21 13
|
6天前
|
安全 Java 编译器
在Java中,什么是类型擦除机制,如何有效运用泛型的类型擦除机制?
Java的类型擦除机制在编译时移除了泛型的类型参数信息,生成的字节码不包含泛型,以确保向后兼容。这导致运行时无法直接获取泛型类型,但编译器仍做类型检查。为了有效利用类型擦除,应避免运行时类型检查,使用通配符和界限增加代码灵活性,通过超类型令牌获取泛型信息,以及利用泛型方法来保证安全性。理解这些策略能帮助开发者编写更安全的泛型代码。
29 8
|
8天前
|
安全 Java 开发者
Java泛型详解
Java泛型详解
15 2
|
15天前
|
存储 缓存 安全
Java基础15-深入理解Java中的泛型(二)
Java基础15-深入理解Java中的泛型(二)
16 4
|
13天前
|
安全 Java
深入理解 Java 泛型工厂方法:类型安全与灵活性的结合
深入理解 Java 泛型工厂方法:类型安全与灵活性的结合
10 1
|
13天前
|
安全 Java 编译器
Java 泛型详解:全面掌握类型安全与灵活性的利器
Java 泛型详解:全面掌握类型安全与灵活性的利器
13 1
|
13天前
|
安全 Java 开发者
详解 Java 泛型:核心概念与实用示例
详解 Java 泛型:核心概念与实用示例
11 1
|
22天前
|
存储 安全 Java
【Java基础】 泛型编程
Java泛型是一种通过参数化类型提升代码复用性和安全性的编程方式,允许在类、接口和方法中使用类型参数。泛型类如`Box&lt;T&gt;`可在实例化时指定类型,泛型方法如`&lt;T&gt; void printArray(T[] array)`在方法声明中指定类型参数。类型通配符如`?`用于增强灵活性,`? extends T`表示类型为T或其子类,`? super T`则为T或其父类。类型擦除保证泛型不增加运行时开销,但会导致某些限制。示例展示了泛型类、方法和无界通配符的综合运用。
20 4
|
21天前
|
Java API 容器
Java泛型的继承和通配符
Java泛型的继承和通配符
13 1