参数化类型是什么意思?

2022-09-01 07:26:24

链接声明如下:

具有实际类型参数的泛型类型的实例化称为参数化类型。示例(参数化类型):

Collection<String> coll = new LinkedList<String>();

那么什么是参数化类型呢?

  • Collection<String>
  • LinkedList<String>

答案 1

它们都是参数化类型:将其他类型作为参数的类型。

表达式的两侧具有不同类型的事实是无关紧要的,并且与多态行为有关,即因为 是 的子类型。LinkedListCollection


答案 2

参数化类型通常是处理其他对象的类,而不感兴趣的是什么类型。可以使用符号“name”定义类型,然后在创建类的实例时传递。

例如:

class MyClass<T> {
    private T obj;
    public MyClass<T>(T obj) {
        this.obj = obj;
    }
    public int getId() {
        return obj.hashCode();
    }
}

在上面的示例中,包装任何类型的对象,并使用此方法始终存在的事实来执行其方法。MyClasshashCode()

以下是此类的使用方式:

int sid = new MyClass<String>("aaaa").hashCode();

请注意,你不能说:对象是用参数创建的这一事实决定了构造函数参数的类型。new MyClass<String>(123)String

回到您的示例意味着“字符串集合”。这意味着您无法将其他类型的对象添加到此集合中。Collection<String>


推荐