Как создать метод в java возвращающий значение тип данных которого не определен
Задача: создать метод возвращающий значение, тип данных которого не определен. Метод может вернуть число или строку. Вопрос: как это сделать одним методом? Не смог найти решение в гугле.
С переменными такая-же задача: метод может принимать на вход две переменных, обе из которых могут быть или числом или строкой. Ранее писал в нестроготипизированных языках, а с java такой затык)
Update: поразмыслив, пришел к выводу, что с методом вопрос решаемый - можно число приводить к строке и возвращать в обоих случаях строку. А вот с определением переменных вопрос открыт)
Ответы (1 шт):
Самое простое решение, если не брать во внимание возможность использовать String для данной задачи - использовать тип данных Object, сравнивать типы через instanceof и использовать преобразование для доступа к методам.
// Получаем значение переменной из функции.
Object variable = getValue();
// Проверяем, является ли variable строкой.
if(variable instanceof String)
System.out.println(
// Преобразовываем variable к String и используем методы класса.
((String) variable)
.replaceAll("t", "g")
);
else
// Преобразовываем variable к int и складываем.
System.out.println((int) variable + 2);
...
// Функция, возвращающая рандомно String или int.
public Object getValue() {
return new Random().nextBoolean() ? 1 : "test";
}
Соответственно, результат выполнения кода рандомно либо gesg, либо 3.
Можно посмотреть в сторону Generic и Reflection, но добавиться динамической типизации простым путём и без всяких обработок всё равно не выйдет)