Код: Выделить всё
public static class Example {
public static Example example(T data) {
return null;
}
public static Example example(String msg) {
return null;
}
public static Example example(String... args) {
return null;
}
public static void example() {
Example msgExample = example("msg");
// how to call `result(T data)` instead `result(String msg)` ?
Example dataExample = example("data");
// working but required double casting
Example dataExampleByCasting = (Example) ((Example) example((Object) "data"));
// how to call `result(String... args)` instead `result(String msg)` ?
Example argsExample = example("args");
// working but required new array
Example argsExampleByNewArray = example(new String[]{"args"});
}
}
Я пытаюсь перефразировать объяснение моего вопроса, а поля в примере опущены.
Эти методы имеют разную семантику:
- : данные означает, что данные необходимо вернуть, но значения полей, таких как статус и информация, фиксированы, например, успешный запрос
Код: Выделить всё
example(T data) - : msg означает сообщение об ошибке, и в данный момент не требуется возвращать никакие данные, например, сбой запроса
Код: Выделить всё
example(String msg) -
: args расширен на основе двух вышеуказанных случаев для дополнительной обработки
Код: Выделить всё
example(String... args)
Подробнее здесь: https://stackoverflow.com/questions/791 ... ed-in-java
Мобильная версия