我怎样才能一般地创建一个任意数字类型的零?
这是一个玩具示例:将空数转换为零的函数.
static <T extends Number> T zeroIfNull(T value) {
return value == null ? 0 : value;
}
Run Code Online (Sandbox Code Playgroud)
这不会编译,因为文字零是类型int,我需要将其转换为类型T.
是否可以这样做?
课堂上甚至没有提到零Number。如果你必须这样做,我建议避免nulls,也许是:
public static <T> T coalesce(T a, T b) {
return a==null ? b : a;
}
Run Code Online (Sandbox Code Playgroud)
您还可以创建一个通用接口来处理数字,其功能对您的代码有意义:
interface NumberOps<T extends Number> {
T zeroIfNull(T value);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3735 次 |
| 最近记录: |