Обобщенный метод для получения суммы любого типа данных в Java - PullRequest
0 голосов
/ 22 октября 2019

Мне нужен общий метод, который может дать мне вывод для любого типа данных, переданного его аргументам.

Например:

Мы должны написать много одинаковых реализаций для разных типов данных.

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;
    }
}

Нужен только один метод, который может принимать данные любого типа и возвращать вывод.

1 Ответ

1 голос
/ 22 октября 2019

Это невозможно, поскольку вы не можете добавлять произвольные объекты с помощью оператора + (см. Спецификация Java для оператора '+' ).

Если вам все равноЧто касается потери точности в некоторых случаях, вы можете определить тип параметров как Number, а затем вызвать doubleValue и / или longValue перед выполнением сложения. Единственный другой способ - написать отдельный метод для каждого из примитивных типов.

Однако, если вы хотите добавить произвольные объекты вместе, вы можете создать интерфейс Addable, который определяет метод add(Addable other) иреализовать этот метод в ваших классах. Я не знаю, как бы вы определили такое дополнение, но в конечном итоге это зависит от вас.

Некоторые классы, такие как BigInteger, уже имеют такой метод. Однако он не определяется интерфейсом и принимает только объекты одного типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...