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

标签 java methods

我想在一个方法中分别使用 double 值和 int 值作为该方法的参数,如何实现?该方法以相同的方法将两个整数和两个 double 相乘。输出应该是两行,一行用于整数,另一行用于 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);

请注意,数字包装器作为原始计数器部件消耗更多内存。
所以第一种重载方法确实是最有效的。

而且你还有很多其他方法来解决这个问题。 所有这些都表明您应该根据您的要求使用某种方式。

关于java - 对同一方法使用不同的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49409692/

相关文章:

Java继承疑问

Java 泛型 - 不允许子类

java - 获取 Grails 中最受欢迎的项目

java - 如何将迭代器转换为流?

java - 关于服务类的几个问题

java - 原始数据类型和类数据类型的 equals() 方法和 '==' 运算符

java - Rational 类中相互调用方法

java - Java中Comparable<T>的异常现象

c# - 需要将通用方法移动到另一个类并从 C# 中的不同类调用它

java - SetFocusable 方法或 Focusing Components Java