Как создать метод в java возвращающий значение тип данных которого не определен

Задача: создать метод возвращающий значение, тип данных которого не определен. Метод может вернуть число или строку. Вопрос: как это сделать одним методом? Не смог найти решение в гугле.

С переменными такая-же задача: метод может принимать на вход две переменных, обе из которых могут быть или числом или строкой. Ранее писал в нестроготипизированных языках, а с java такой затык)

Update: поразмыслив, пришел к выводу, что с методом вопрос решаемый - можно число приводить к строке и возвращать в обоих случаях строку. А вот с определением переменных вопрос открыт)


Ответы (1 шт):

Автор решения: NyashMyash99

Самое простое решение, если не брать во внимание возможность использовать 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, но добавиться динамической типизации простым путём и без всяких обработок всё равно не выйдет)

→ Ссылка