1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[Java Question] Операции над своими типами

Тема в разделе "Разработка плагинов для новичков", создана пользователем ql_Nik_lp, 29 апр 2014.

Статус темы:
Закрыта.
  1. Автор темы
    ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Всем доброго.
    Возник тут вопрос, возможно ли научить свои типы банальным операциям?

    К примеру у меня есть объект TestObj(int value1, double value2);
    И к примеру у меня есть 2 экземпляра этого объекта, скажем
    Код:
    TestObj obj1 = new TestObj(3, 4.5D);
    TestObj obj2 = new TestObj(7, 5.5D);
    Хотелось бы реализовать так чтобы возможно было использование этих объектов так дабы
    TestObj obj3 = obj1 + obj2 дало мне obj3 который равен (10, 10D);
    Знаю что в случае со сравнением можно оверрайдить метод equals, но как быть со сложением и вычитанием?

    Буду благодарен за любую помощь :)
     
    Последнее редактирование: 30 апр 2014
  2. ptnk

    ptnk Старожил Пользователь

    Баллы:
    173
    Такого сделать в java нельзя.
     
  3. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Перегрузки операторов в Java нет.

    Поведение объектов можно изменить только с помощью некоторых стандартных интерфейсов.
    Например, имплементить Iterable, чтобы по объекту можно было проводить итерации
    AutoClosable - объект можно будет использовать в try-с-ресурсами

    Если сильно хочется, используйте груви или скалу. Там есть полная перегрузка операторов.
    Плагины для bukkit запускаются, если правильно подготовить classpath. (бубен.gif)
     
    ql_Nik_lp нравится это.
  4. Автор темы
    ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Ясно-понятно.
    Всем спасибо за ответы.
    Наверное просто реализую методы add(Obj) sub(Obj) и тому подобные.
    Еще раз благодарю.
     
Статус темы:
Закрыта.

Поделиться этой страницей