java中任意数据类型求和的通用方法
我想要一个通用方法,它可以为传递给其参数的任何数据类型提供输出 例如: 我们必须为不同的数据类型编写许多相同的实现java中任意数据类型求和的通用方法,java,oop,generics,core,Java,Oop,Generics,Core,我想要一个通用方法,它可以为传递给其参数的任何数据类型提供输出 例如: 我们必须为不同的数据类型编写许多相同的实现 class Test { public static void main(String args[]) { int x=sum(1,2); double y=sum(1.11,2.22); String z=sum("1","2"); } static public int sum(int a, int b
class Test {
public static void main(String args[]) {
int x=sum(1,2);
double y=sum(1.11,2.22);
String z=sum("1","2");
}
static public int sum(int a, int b) {
return a + b;
}
static public double sum(double a, double b) {
return a + b;
}
static public String sum(String a, String b) {
return a + b;
}
}
只需要一个可以接受任何数据类型并返回输出的方法。这是不可能的,因为不能使用
+
运算符添加任意对象(请参阅)
如果在某些情况下不担心精度降低,可以定义要添加的参数的类型,然后在进行加法之前调用doubleValue
和/或longValue
。唯一的另一种方法是为每个基元类型编写单独的方法
但是,如果您想同时添加任意对象,可以创建一个Addable
接口,该接口定义一个add(Addable other)
方法,并在类中实现该方法。我不知道你会如何定义这样一个加法,但最终取决于你
有些类,如
biginger
已经有了这样的方法。但是,它不是由接口定义的,只接受相同类型的对象。即使对于没有任何意义的对象,也可以将其添加到一起?不可能,不可取。@ayush如果您确定输入的两个数字都是相同的数据类型,使用generic
方法可能会有所帮助。如果您查看Arrays类
,您将看到对基元类型执行相同操作的方法需要重载。