【发布时间】:2014-02-21 02:54:02
【问题描述】:
我正在写一篇关于泛型的简短论文,但我并没有真正在 Java 中大量使用它们。我想知道原始类型是否可以用作泛型变量中的参数类型。我无法使用泛型类型的泛型参数对其进行编译。
问题:我不太确定泛型如何处理原始数据类型。有人可以举例说明我必须如何声明不同的方法,而不必使用 Integer 向 int 类型添加强制转换,以及是否可以在类声明中使用原始 Java 数据类型
DDHGeneric<int,int,int,int> t = new DDHGeneric<int,int,int,int>();
有没有办法做到这一点?
以下声明也无法编译。我确实知道,根据我对泛型的了解,使用原始数据类型和用户定义的类之间是有区别的。
DDHGeneric<int, int, int, int> temp2 = new DDHGeneric<int, int, int, int>();
类:
public class DDHGeneric<T,K,Bigfoot,Pizza> {
T a;
K n;
Bigfoot u;
public DDHGeneric() {
}
private <rapper> void myMethod(rapper y) {
int temp = y; <--Errors out on this line as will.
}
public <Pizza> void myAddition(Pizza a, Pizza b) {
}
private <K> void me(K a, K b, K c) {
}
public static void main(String[] args) {
DDHGeneric<int, Integer, Integer, Integer> temp = new DDHGeneric<int, Integer, Integer, Integer>();
temp.myAddition(5, 4);
temp.a = "Test this string!" ;
}
}
【问题讨论】:
-
答案是你不能。
-
你不能,因为基元没有通用的表示。所有对象都有一个共同的表示——一个对象引用指针——所以可以在编译泛型的实现之后设置类型。
标签: java