Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中任意数据类型求和的通用方法_Java_Oop_Generics_Core - Fatal编程技术网

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类
,您将看到对基元类型执行相同操作的方法需要重载。