Java 泛型:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
(创建页面,内容为“Java 泛型 泛型,即“参数化类型”,编写更通用、类型安全的代码。定义时由参数代替具体的类型,使用时传入具体的类型(即形参不指定类型,由实参指定)。 ==== 泛型类 ==== public class Box<T> { private T content; ... } Box<Integer> intBox = new Box<>(123); Box<String> stringBox = new Box<>("Hello, World!"); ==== 泛型方法 ==== private Node root; public <K extends Comparable<K>, V>…”)
 
无编辑摘要
第3行: 第3行:
泛型,即“参数化类型”,编写更通用、类型安全的代码。定义时由参数代替具体的类型,使用时传入具体的类型(即形参不指定类型,由实参指定)。
泛型,即“参数化类型”,编写更通用、类型安全的代码。定义时由参数代替具体的类型,使用时传入具体的类型(即形参不指定类型,由实参指定)。


=== 泛型类型 ===
==== 泛型类 ====
==== 泛型类 ====
  public class Box<T> {
  public class Box<T> {
第32行: 第33行:
     }
     }
  }
  }
=== 泛型参数 ===
==== <T extends Comparable<T> ====
Comparable 是指类型 T 必须实现 Comparable 接口,即 T 之间能比较大小(Java 不支持运算符重载,只能通过 Comparable<T> 接口比较两个对象)
==== <T extends Comparable<? super T>> ====
实现 Comparable 接口;输入参数是同级类或父类(超类)。<? super T> 用于子类及后代类均可使用。


[[分类:Develop]]
[[分类:Develop]]
[[分类:Java]]
[[分类:Java]]

2024年5月20日 (一) 10:23的版本

Java 泛型

泛型,即“参数化类型”,编写更通用、类型安全的代码。定义时由参数代替具体的类型,使用时传入具体的类型(即形参不指定类型,由实参指定)。

泛型类型

泛型类

public class Box<T> {
    private T content;
    ...
}

Box<Integer> intBox = new Box<>(123);
Box<String> stringBox = new Box<>("Hello, World!");

泛型方法

private Node root;
public <K extends Comparable<K>, V> void insert(K key, V value) {
    root = insert(root, key, value);
    ...
}

java 泛型 <K extends Comparable<K>, V> 是什么意思?


泛型接口

interface Generator<T> {
    T generate();

class StringGenerator implements Generator<String> {
    @Override
    public String generate() {
        return "Generated String";
    }
}

泛型参数

<T extends Comparable<T>

Comparable 是指类型 T 必须实现 Comparable 接口,即 T 之间能比较大小(Java 不支持运算符重载,只能通过 Comparable<T> 接口比较两个对象)

<T extends Comparable<? super T>>

实现 Comparable 接口;输入参数是同级类或父类(超类)。<? super T> 用于子类及后代类均可使用。