我想在一个方法中分别使用 double 值和 int 值作为该方法的参数,如何实现?该方法以相同的方法将两个整数和两个 double 相乘。输出应该是两行,一行用于整数,另一行用于 double 值
最佳答案
最有效的方法是重载该方法:
void foo(int i)
void foo(double i)
但是将 int
分配给 double
也是有效的,因此您也可以只提供:
void foo(double i)
接受int
和double
。
重载的替代方法是使用接受泛型类型的方法定义泛型类:
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);
请注意,数字包装器作为原始计数器部件消耗更多内存。
所以第一种重载方法确实是最有效的。
而且你还有很多其他方法来解决这个问题。 所有这些都表明您应该根据您的要求使用某种方式。
关于java - 对同一方法使用不同的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49409692/