Плагин перегрузки оператора для Java

Я видел некоторые хорошие взломы компилятора Java, где можно заменить утверждения операторами исключения броска, можно было автоматически сгенерировать свойства для полей и так далее...

Я просто задавался вопросом...

Действительно ли возможно взломать компилятор Java так, чтобы это поддерживало Перегрузку Оператора?

РЕДАКТИРОВАНИЕ:

Не то, чтобы я пропускаю оператор, перегружающийся в Java или чем-то. Я просто хочу знать, возможно ли реализовать его с помощью взломов, упомянутых в ссылках, которые я дал выше. Поэтому не предлагайте, чтобы я переключился на некоторый другой язык как Scala (который я уже изучаю так или иначе! :D).

РЕДАКТИРОВАНИЕ:

Просто скажите мне, возможно ли сделать это с помощью JSR 269 или чего-то как этот.:|

Спасибо.

8
задан AstroCB 30 August 2014 в 21:10
поделиться

6 ответов

Это также хороший раз и его только $10.

-121--3894649-

Можно создать триггер , запускающий команду INSERT, но лучший способ подойти к этому - это просто запланированное задание, которое выполняется периодически (скажем, раз в неделю) и удаляет записи из таблицы.

-121--1394235-

В ответ на отредактированный вопрос единственный способ реализации перегрузки оператора true в Java - добавить его в язык. Это означает, что необходимо либо изменить компилятор для компиляции кода, либо написать препроцессор, преобразующий код в стандартный Java. Для первых можно загрузить почти полную реализацию FOSS java из GNU или проекта OpenJDK . Для последнего можно либо написать собственный синтаксический анализатор, используя такие вещи, как JavaCC и т.д. (примеры находятся на этой странице ), либо можно использовать JFront в качестве основы для добавления собственного синтаксиса.

5
ответ дан 5 December 2019 в 11:25
поделиться

Другой подход - использование библиотек Groovy, т.к. в Groovy уже есть перегрузка оператора.

https://o24j.dev.java.net/

Текущая реализация использует Groovy за перегрузку. Такой подход один недостаток: прикольные библиотеки должны быть доставлены вместе с проектом.

1
ответ дан 5 December 2019 в 11:25
поделиться

JFront - препроцессор для языка Java, позволяющий реализовать перегрузку операторов для собственных классов. К сожалению, эта возможность, кажется, не добавлена в стандартные классы (BigInteger и др. были бы отличным кандидатом для этого).

2
ответ дан 5 December 2019 в 11:25
поделиться

Если вам нужна перегрузка оператора, вы можете рассмотреть возможность перехода на Scala. Код Scala совместим с вашими классами Java и поддерживает перегрузку операторов.

1
ответ дан 5 December 2019 в 11:25
поделиться

Это не позволяет перегрузить оператора, но учитывая ссылки в вашем вопросе, вас может заинтересовать http://projectlombok.org/features/index.html

0
ответ дан 5 December 2019 в 11:25
поделиться

Еще хуже то, что ваша компания использует новое/незрелое программное обеспечение, которое вы сами разработали . Поначалу, когда я был единственным разработчиком, моя неповторимая структура HTML GUI работала просто прекрасно для построения нашего РИА. Однако, как только мы получили дополнительных разработчиков, я увидел, насколько ниже производительность разработчиков, если не использовать проверенную платформу с сильным сообществом. В связи с этим и тем, что я в конечном итоге понял, насколько неподходящий HTML 4 для RIA, мы перевели его в Adobe Flex 3. Я очень доволен ходом.

-121--1002536-

Я полностью согласен с Биллом, но могу представить, что бизнес-правила хранятся (не обрабатываются) в базе данных. Я думаю о drools здесь. Ядро будет находиться в приложении, но правила могут находиться в базе данных с интерфейсным интерфейсом управления.

Такой зверь был бы интересен для сценариев, где могут меняться не только параметры, но и формулы.

-121--3367067-

Можно использовать инжекцию байтового кода для замены типа float собственным типом. Это можно сделать после компиляции без изменения компилятора.

2
ответ дан 5 December 2019 в 11:25
поделиться
Другие вопросы по тегам:

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