swi*_*itz 34 java oop generics data-structures
我真的不明白泛型的意义.他们做了什么,你如何使用它们?
据我所知,他们所做的只是在编译时检查返回类型而不是运行时间,以避免在抛出错误之前运行程序.这就是他们所做的一切吗?
例如:
public <Integer> int test() {
return 'c'; //will throw error at compile instead of runtime
}
Run Code Online (Sandbox Code Playgroud)
我正在读一些关于泛型是如何随意的,你应该只使用大写字母?这有点令人困惑.
Eri*_*sch 88
泛型允许您根据您正在使用的任何类型自定义" 通用 "方法或类.例如,假设您有一个将两个数字相加的方法.为了使用类型本身,您可能必须创建此方法的多个版本.例如:
public int Add(int a, int b)
public double Add(double a, double b)
public float Add(float a, float b)
Run Code Online (Sandbox Code Playgroud)
泛型允许您创建一个为调用它的类型自定义的方法.
public T Add<T>(T a, T b)
Run Code Online (Sandbox Code Playgroud)
T 取代您使用的任何类型.
我能想到的解释泛型的最简单方法是很好的复制粘贴比喻:
public <COPY> PASTE addTwoThings(PASTE a, PASTE b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
您指定一个类型(在该<COPY>部分中)并且 java 在整个代码块中使用这个类型,它将确保这些类型是兼容的。通过这样做,您可以避免编写:
等等。不要将它与预处理器混淆,Java 只希望给出一个类型。
| 归档时间: |
|
| 查看次数: |
34785 次 |
| 最近记录: |