我真的不理解泛型的意义。它们是做什么的,你如何使用它们?
据我所知,它们所做的就是在编译时而不是运行时检查返回类型,以避免在抛出错误之前运行程序。这就是他们所做的一切吗?
例如:
public <Integer> int test() {
return 'c'; //will throw error at compile instead of runtime
}
我正在读一些关于泛型是如何任意的东西,你应该只使用大写字母吗?这有点让人困惑。
发布于 2011-10-19 01:23:08
泛型允许您将“泛型”方法或类定制为您正在使用的任何类型。例如,假设您有一个将两个数字相加的方法。为了使用类型本身,您可能需要创建此方法的多个版本。例如:
public int Add(int a, int b)
public double Add(double a, double b)
public float Add(float a, float b)
泛型允许您创建单个方法,该方法是为调用它的类型自定义的。
public <T> T Add(T a, T b)
您使用的任何类型都将替换为T
。
发布于 2011-10-19 01:14:25
参考the Fundamentals in Angelika Langer's FAQ -这是你可能找到的所有与Java泛型相关的东西的最好的解释。也就是说,泛型最初的主要目标是启用“类型化”集合。
发布于 2011-10-19 01:18:14
我能想到的解释泛型的最简单的方法是好的“复制-粘贴隐喻”:
public <COPY> PASTE addTwoThings(PASTE a, PASTE b) {
return a + b;
}
您指定一个类型(在<COPY>
部分),java在整个代码块中使用该类型,它将确保这些类型是兼容的。通过这样做,您不必编写以下代码:
但是,不要把这与预处理器混淆,Java只希望给出一个类型。
https://stackoverflow.com/questions/7815528
复制相似问题