Java泛型约束:可选参数和精确类型限制案例

原创 逃离我推掉我的手 2024-10-20 07:54 70阅读 0赞

在Java中,泛型是提供类型安全的机制。它可以用于创建可重用的模板类或方法,其中的类型可以在编译时进行检查。

  1. 可选参数(Optional Parameters):
  1. // 基本泛型
  2. public class GenericExample<T> {
  3. private T value;
  4. // 构造器,接受可选参数
  5. public GenericExample(T value) {
  6. this.value = value;
  7. }
  8. // 返回值
  9. public T getValue() {
  10. return value;
  11. }
  12. }
  13. // 使用示例:可选地传递一个对象
  14. public class Main {
  15. public static void main(String[] args) {
  16. // 创建一个泛型实例,传入null(默认值)作为可选参数
  17. GenericExample<String> genericExample = new GenericExample<>(null);
  18. // 获取并打印值,这里会因为传入null而不会抛出异常
  19. System.out.println(genericExample.getValue()); // 输出:null
  20. }
  21. }
  1. 精确类型限制(Type Constraints):

泛型允许你在编写代码时声明一个类型的容器。为了更具体地限制容器中元素的类型,你可以为泛型参数添加类型约束。

  1. // 带有精确类型约束的泛型
  2. public class GenericExampleConstraints<T extends String> {
  3. // ...
  4. }
  5. // 使用示例:创建一个只包含字符串的实例
  6. public class Main {
  7. public static void main(String[] args) {
  8. // 创建带有精确类型约束的泛型实例
  9. GenericExampleConstraints<String> genericExample = new GenericExampleConstraints<>(new String("Hello, World!")));
  10. // 验证值类型是否正确
  11. if (!genericExample.getValue().getClass().isAssignableFrom(String.class))) {
  12. System.out.println("Type check failed: " + genericExample.getValue().getClass())); // 输出:Class 'java.lang.Object' is not a subtype of class 'java.lang.String'
  13. return;
  14. }
  15. System.out.println(genericExample.getValue())); // 输出:"Hello, World!"
  16. }
  17. }

以上案例展示了Java泛型的可选参数(Optional Parameters)和精确类型限制(Type Constraints)如何在实际使用中应用。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,70人围观)

还没有评论,来说两句吧...

相关阅读

    相关 类型参数约束

    [泛型类型参数及约束][Link 1] 泛型类型参数简介     在定义泛型类型和泛型方法时,常用到泛型类型参数,泛型类型参数是在实例化泛型时指定类型的占位符。泛型类