Задать вопрос
@zaralX
Я человек, я упал с луны.

Как создать функцию которая может принимать любые типы переменных?

Не смог найти ответ в интернете.
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
В полной мере union-типы реализованы в Scala. Поэтому тебе надо сменить язык чтобы работать
на таком уровне выразительности своей идеи.

Например вот функция которая конвертит дату-время для строки или для лонг-типа.
def convertTime(time : String | Long) : String = 
  ....


В Java есть вариант - передать базовый типп Object и в теле функции проверять instanceOf и делать
соотв. conditions или паттерн матчинг по типу.
String convert(Object object) {
   ......
}

Вобщем все варианты требуют явного перечисления логики которую ты хочешь сделать.

Или ты хотел как-то "схитрить" и не писать логику?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
xez
@xez Куратор тега Java
TL Junior Roo
Примерно так:
<T> void genericMethod(T argument) {
        // argument extends object
        System.out.println(argument);
    }

т.к. не понтяно какой тип будет у аргумента, он будет обладать только свойствами Object

<T extends SomeType> void someMethod(T argument) {
        System.out.println(argument);
    }

    abstract class SomeType implements SomeInterface {
    }

    interface SomeInterface {
        //TODO :: some methods
    }

Можно указать, что аргумент наследуют к.л. тип и тогдаможно вызывать методы этого типа.
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
В статически типизированных языках такие функции создавать не надо. Если вам понадобилось, то вы делаете что-то не так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы