举报投诉联系我们 手机版 热门标签 鳄鱼CMS
您的位置:鳄鱼CMS > java 泛型 限制类型 Java 泛型限制

java 泛型 限制类型 Java 泛型限制

2023-03-22 03:31 Java教程

java 泛型 限制类型 Java 泛型限制

java 泛型 限制类型

Java 泛型是 Java 语言中的一种强大的特性,它可以帮助我们更好地管理代码,提高代码的可读性和可维护性。它允许我们在定义一个类或方法时,将其参数化为不同的数据类型,这样就可以使用不同的数据类型来创建对象或执行方法。

Java 泛型有一个重要的限制:它只能用于引用类型(即对象)。这意味着你不能使用泛型来创建原始数据类型(int、float、double 等)的对象。例如:

public class MyClass<T> { 
    T obj; 

    public MyClass(T obj) { 
        this.obj = obj; 
    } 

    public T getObject() { 
        return this.obj; 
    } 

    public static void main(String[] args) { 
        // 创建一个 Integer 类型的对象 
        MyClass<Integer> intObject = new MyClass<Integer>(15); 

        // 创建一个 String 类型的对象 
        MyClass<String> strObject = new MyClass<String>("Hello World");  

        // 创建一个 Double 类型的对象  
        MyClass<Double> dblObject = new MyClass<Double>(15.5);  

        // 创建一个 int 类型的对象   // 错误: int 是原始数据类型,不能作为泛型参数  
        //MyClass <int > intObject = new MyClass <int > (15);  
} 

Java 泛型限制

Java教程 - 什么是Java泛型限制


类型参数不能实例化

不能创建类型参数的实例。例如,考虑这个类:

// Can"t create an instance of T. 
class Gen<T> {
  T ob;

  Gen() {
    ob = new T(); // Illegal!!!
  }
}

静态成员的限制

没有静态成员可以使用由封装类声明的类型参数。例如,此类的所有静态成员都是非法的:

class Wrong<T> {
  // Wrong, no static variables of type T.
  static T ob;

  // Wrong, no static method can use T.
  static T getob() {
    return ob;
  }

  // Wrong, no static method can access object of type T.
  static void showob() {
    System.out.println(ob);
  }
}

您可以使用自己的类型参数声明静态泛型方法。


泛型数组限制

您不能实例化基本类型是类型参数的数组。您不能创建类型特定的泛型引用的数组。

以下短程序显示了两种情况:

class MyClass<T extends Number> {
  T ob;
  T vals[];

  MyClass(T o, T[] nums) {
    ob = o;
    vals = nums;
  }
}

public class Main {
  public static void main(String args[]) {
    Integer n[] = { 1 };
    MyClass<Integer> iOb = new MyClass<Integer>(50, n);
    // Can"t create an array of type-specific generic references.
    // Gen<Integer> gens[] = new Gen<Integer>[10]; 
    MyClass<?> gens[] = new MyClass<?>[10]; // OK
  }
}
阅读全文
以上是鳄鱼CMS为你收集整理的java 泛型 限制类型 Java 泛型限制全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 鳄鱼CMS eyucms.com 版权所有 联系我们