gpt4 book ai didi

java String 非原始类型的泛型类

转载 作者:行者123 更新时间:2023-12-02 02:23:25 25 4
gpt4 key购买 nike

我正在研究java泛型类。创建一个以 T 作为类型参数的泛型类。

public class Genericstring<T> {
String name;

public void set(String name){
this.name = name;
}

public static void main(String[] args){
Genericstring<String> o = new Genericstring<String>();
o.set("Generic");

System.out.println(o.name);
}
}

在上面的示例中,T 的类型可以是字符串、整数或任何其他类型。但是我可以创建具有特定类型参数的泛型类吗?如下例所示,但显示错误“无法对非静态类型 String 进行静态引用”

public class Genericstring<String> {
String name;

public static void main(String[] args){
//Here creating object always having string type attributes. No need to specify like did in above example.
}

谁能告诉我,是否可以创建以 String 作为参数的泛型类 Class generictype ?如果不是,那为什么?

最佳答案

Genericstring<String>正在声明一个名为 String 的类型变量.

这使得String的所有其他用途引用该类型变量,而不是 java.lang.String 。你在哪里得到 main 的参数声明为String[] ,它认为你指的是类型变量。因为这是一个静态方法,所以您不能在那里引用该类型参数,因为它属于该类的实例。

But is that possible I could create generic class with specific type argument.

您所描述的是一个非泛型类。删除类型参数。

public class Genericstring {
String name;

// Etc
}

关于java String 非原始类型的泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48137395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com