繁体   English   中英

对同一方法使用不同的数据类型

[英]Using different data types for the same method

我想在一种方法中分别使用double值和int值作为方法的参数,如何实现呢? 该方法是在同一方法中将两个整数与两个双数相乘。 输出应为两行,一行为整数,另一行为double值

最有效的方法是重载该方法:

void foo(int i)
void foo(double i)

但是将int赋给double也是有效的,因此您也可以只提供:

void foo(double i)

接受intdouble

重载的一种替代方法是使用可以接受通用类型的方法来定义通用类:

public class Bar<T extends Number>{
   public void foo(T t){
      ...
   }
}

您可以实例化它们:

Bar<Integer> barInt = new Bar<>();
barInt .foo(3);
Bar<Double> barDouble = new Bar<>();
barDouble.foo(3);

请注意,数字包装器将更多的内存用作原始计数器部分。
因此,过载的第一种方法实际上是最有效的。

而且您还有许多其他方法可以解决这个问题。 这就是说您应该根据需要使用某种方式。

对于一些对于int / double类型安全的计算,您可以使用以下代码:

<T> T calc(T a, Tb) { };

如果要对特殊类型使用函数(四舍五入/浮动行为/ ...),可以使用的instance of并使用INTDOUBLE或...调用帮助方法,或者仅在if-else

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM