Java中的泛型是什么?[已关闭]

2022-08-31 21:10:51

我真的不明白泛型的意义。它们做什么,你如何使用它们?

据我所知,他们所做的只是在编译时而不是运行时检查返回类型,以避免在抛出错误之前运行程序。这就是他们所做的一切吗?

例如:

public <Integer> int test() {
    return 'c'; //will throw error at compile instead of runtime
}

我正在阅读一些关于泛型如何任意的东西,你应该只使用大写字母吗?这有点令人困惑。


答案 1

泛型允许您将“泛型”方法或类自定义为您正在使用的任何类型。例如,假设您有一个将两个数字相加的方法。为了使用类型本身,您可能必须创建此方法的多个版本。例如:

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被替换为您使用的任何类型。


答案 2

请参阅Angelika Langer的FAQ中的基础知识 - 这是对您可能找到的与Java泛型相关的所有内容的最佳解释。也就是说,泛型的最初主要目标是启用“类型化”集合。