Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Реализация свойств: Среды с возможностью подмены исходного кода

9.7K
25 января 2012 года
Vitamant
228 / / 07.02.2011
Доброго времени суток!

Подскажите - есть ли какие-нибудь среды для разработки Java-приложений, предоставляющие возможность написания аддонов, подменяющих отображение исходных кодов и преобразующие введенные данные в обратном направлении?

Очень хочется прикрутить свойства, аналогичные C#, вроде:
 
Код:
public int Count
{
  get { return self; }
  set
  {
    self = value;
    Out.PrintLine(value);
  }
}

Которые бы разворачивались в
Код:
private int countValue;

public int getCount()
{
  return countValue;
}

public void setCount(int value)
{
  countValue = value;
  Out.PrintLine(value);
}


Возможно ли это? Или это нужно реализовывать на уровне компилятора и нужно капать на мозг ребятам из Оракл?
14
25 января 2012 года
Phodopus
3.3K / / 19.06.2008
это как? промежуточный транслятор что ли?
9.7K
25 января 2012 года
Vitamant
228 / / 07.02.2011
Ага. В принципе, не сложно написать и самому, но это будет всего лишь текстовый редактор. А всю среду, вроде того же Eclipse или NetBeans с нуля писать совершенно нет желания. :) Хочется прикрутить сие чудо отдельным аддоном к любой из адекватных сред разработки. А то за неделю использования, Java уже в печонках засела. Вместо того чтобы писать код программы, я набираю эти треклятые строчки инкапсуляции, от которых в любом мало-мальски нормальном классе рябит в глазах. Я уж молчу об их извлечении. Когда никакой логики не нужно уже использую исключительно обычные поля. Но зачастую какой-то минимальный набор сопутствующего кода приходится писать и очень хочется привести это безобразие к нормальному виду.
430
07 февраля 2012 года
craftyfox
157 / / 20.02.2000
похоже, тебе сюда: http://www.cybercom.net/~kimbly/jatha/
;)

хотя, наверное, можно и просто generic'и использовать
9.7K
07 февраля 2012 года
Vitamant
228 / / 07.02.2011
Цитата: craftyfox
похоже, тебе сюда: http://www.cybercom.net/~kimbly/jatha/
;)

хотя, наверное, можно и просто generic'и использовать


Не, мне совершенно точно не туда! Жуткая вещь. Во-первых, это препроцессор, следовательно в результирующем коде будут все теже мегатонны инфраструктурного кода. Во-вторых, судя по описанию на сайте, там поддерживаются только простые свойства, без произвольной логики гетера и сетера. В-третьих венгерская нотация, за использование которой в строго типизированных языках нужно публично сжигать. В общем... :facepalm:

---
А как ты предлагаешь заменить свойства генериками? о_О
Методы T Get<T>(Enum name), void Set<T>(Enum name, T value) и хэш Enum(name, methodSet, methodGet) => object, при извлечении из которого объекты кастятся в T?
Мысль интересная, но боюсь, что все это будет работать довольно медленно из-за отражения (если вообще возможно определить - откуда был вызван метод, а в противном случае теряется разграничение по доступности).

240
07 февраля 2012 года
aks
2.5K / / 14.07.2006
Вам походу не надо на яве писать просто, ежели свойства милы сердцу. )
5
07 февраля 2012 года
hardcase
4.5K / / 09.08.2005
На выбор: Groovy, Scala.
5
07 февраля 2012 года
hardcase
4.5K / / 09.08.2005
Еще есть Kotlin, но он пока в состоянии активного допиливания.
430
07 февраля 2012 года
craftyfox
157 / / 20.02.2000
Цитата: Vitamant
Вместо того чтобы писать код программы, я набираю эти треклятые строчки инкапсуляции,


NetBeans, кстати, сама их умеет набирать. (меню Refactor ->Encapsulate Fields...)

Addons для неё тоже вроде как можно писать (http://platform.netbeans.org/tutorials/nbm-google.html)

9.7K
07 февраля 2012 года
Vitamant
228 / / 07.02.2011
О! Похоже, счастье не за горами! Всем большое спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог