作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究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/
我是一名优秀的程序员,十分优秀!