作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有课可以说
Class Rectange{
int height;
int side;
}
在哪些情况下我可以将此类设为通用类?如何确定我们要写一个泛型类?可能一个实际的例子会很好。
更新
使我们的类成为泛型的用例是什么?
我们将在哪些场景中使用泛型?
最佳答案
如果您希望任何提到的类型是可变的,您可以使此类成为通用类。
目前您的类仅包含对类型 int
的引用。如果你想使这个类型成为变量,你可以使用这段代码:
class Rectange<T extends Number> {
T height;
T side;
}
然后您可以创建实例,使用 Integer
或其他类型来存储 height
和 side
:
class Main {
public static void main(String[] args) {
Rectange<Integer> intRect = new Rectange<>();
intRect.height = 12;
Integer intHeight = intRect.height; // no cast needed, the height is guaranteed to be an int
Rectange<Double> dblRect = new Rectange<>();
dblRect.height = 1.20076;
Double doubleHeight = dblRect.height; // this time, height is guaranteed to be an double
}
}
作为一个结论,我会说:如果必须使类型可变,请使用泛型。因此,根据您的用例,使用泛型可能很有用。
关于java - 什么时候将类写成泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32090951/
我是一名优秀的程序员,十分优秀!