Как параметризировать статический метод java
Вы можете параметризовать статический метод передавая ему в качестве аргумента обобщенный тип. Например, рассмотрим следующий пример статического метода, который суммирует два числа:
public class MathUtils {
public static int sum(int a, int b) {
return a + b;
}
}
Вы можете параметризовать этот метод, передав ему в качестве аргументов два объекта типа T
, где T
- это обобщенный тип, как показано в следующем примере:
public class MathUtils {
public static <T extends Number> double sum(T a, T b) {
return a.doubleValue() + b.doubleValue();
}
}
В этом примере мы использовали обобщенный тип <T extends Number>
для параметризации метода sum()
.
Здесь мы ограничиваем тип T
, чтобы он был типом Number
или его подклассом, и таким образом мы можем использовать метод doubleValue()
для преобразования значения объектов типа T
в тип double
Таким образом, мы можем вызвать параметризованный статический метод sum()
следующим образом:
int result = MathUtils.<Double>sum(3.5, 2.5); // 6.0
Здесь мы явно указываем, что тип T
является типом Double
int result = MathUtils.<Double>sum(3.5, 2.5); // 6.0 Возвращаемое значение типа int это опечатка или что? мы же сумму двух double возвращем? причем мы указываем тип обертку Double вместо double. так что же здесь делает тип возвращаемого значения int? Это опечатка или в этом есть какой то тайный смысл? Объяснмте пожалуйста.