Java泛型约束:可选参数和精确类型限制案例
在Java中,泛型是提供类型安全的机制。它可以用于创建可重用的模板类或方法,其中的类型可以在编译时进行检查。
- 可选参数(Optional Parameters):
// 基本泛型
public class GenericExample<T> {
private T value;
// 构造器,接受可选参数
public GenericExample(T value) {
this.value = value;
}
// 返回值
public T getValue() {
return value;
}
}
// 使用示例:可选地传递一个对象
public class Main {
public static void main(String[] args) {
// 创建一个泛型实例,传入null(默认值)作为可选参数
GenericExample<String> genericExample = new GenericExample<>(null);
// 获取并打印值,这里会因为传入null而不会抛出异常
System.out.println(genericExample.getValue()); // 输出:null
}
}
- 精确类型限制(Type Constraints):
泛型允许你在编写代码时声明一个类型的容器。为了更具体地限制容器中元素的类型,你可以为泛型参数添加类型约束。
// 带有精确类型约束的泛型
public class GenericExampleConstraints<T extends String> {
// ...
}
// 使用示例:创建一个只包含字符串的实例
public class Main {
public static void main(String[] args) {
// 创建带有精确类型约束的泛型实例
GenericExampleConstraints<String> genericExample = new GenericExampleConstraints<>(new String("Hello, World!")));
// 验证值类型是否正确
if (!genericExample.getValue().getClass().isAssignableFrom(String.class))) {
System.out.println("Type check failed: " + genericExample.getValue().getClass())); // 输出:Class 'java.lang.Object' is not a subtype of class 'java.lang.String'
return;
}
System.out.println(genericExample.getValue())); // 输出:"Hello, World!"
}
}
以上案例展示了Java泛型的可选参数(Optional Parameters)和精确类型限制(Type Constraints)如何在实际使用中应用。
还没有评论,来说两句吧...