我的问题非常类似于"编写一个通用类来处理内置类型",包括受到在类上处理矩阵操作这一事实的启发.虽然这个问题是用C#提出的,但指的是关于Generic Operators的文章.
我不明白.Java Number没有add方法,因此您可以使用以下方法:
public Number myAdd(Number a, Number b){
return a.add(b);
}
Run Code Online (Sandbox Code Playgroud)
那么你如何处理一个你希望能够在Java中处理多种类型的数字的情况?
小智 5
基本问题是Java类型系统非常原始.
由于在Java中没有密集的类型集的概念(Java也不可能推断像Haskell那样的类型),所以没有办法使一般的数字+数字 - >数字没有欺骗.
对于原语(以及可以自动映射到它们的Integer等对象)类型提升和+操作是语言的一部分.(这是问题的实际部分:数字a +数字b应该返回哪里a和b是不同类型的?)
如果你真的想要这种行为,你必须找到(或创建)你自己的自定义类,它使用反射或一系列(检查和)强制转换等.即使您使用泛型(请记住泛型是类型擦除的),也需要进行转换.
我想这些问题是为什么数字如此平淡无奇的部分原因.
| 归档时间: |
|
| 查看次数: |
4076 次 |
| 最近记录: |