Java: инструменты De-deprecated-ing

$('#ctl00_WebFormBody_txtPriceAdjustment').click(function() {
  alert($('#ctl00_WebFormBody_lblProductMarkup').text());
});
5
задан Ande TURNER 16 June 2009 в 08:26
поделиться

4 ответа

Автоматизированные инструменты могут разумно обрабатывать только те случаи, когда есть новый предпочтительный метод или класс, который можно использовать для выполнения точно такой же задачи. Любой случай, когда метод является устаревшим из-за дефектного дизайна (подумайте, что-нибудь, связанного с датами в Java) или потому что теперь поддерживается «лучший» способ (подумайте, AWT для Swing или SWT), требует далеко не много размышлений для автоматизации.

Короче, нет таких инструментов. Я сомневаюсь, что они когда-нибудь появятся и в будущем.

4
ответ дан 18 December 2019 в 08:30
поделиться

Если вы хотите сделать это автоматически - нет .

Инструмент называется программистом .


Причина в том, что инструменты должны будут глубоко понимать как устаревание, так и «отказ от устаревания», вашу программу и целевой язык программирования.

Например, java.util.Date.setMonth устарел в пользу Calendar.set (Calendar.MONTH, int month) .

Это нетривиальное изменение, которое нужно применить, так как оно требует замены экземпляров объектов, вызовов методов с учетом синхронизации. На самом деле кошмар делать автоматически.

12
ответ дан 18 December 2019 в 08:30
поделиться

Обычно вы должны использовать что-то вроде regexps, ANTLR или JavaCC для реализации собственного инструмента.

Кроме того, некоторые IDE предлагают относительно инструменты более высокого уровня для облегчения этого. В IntelliJ IDEA это рефакторинг «Структурный поиск и замена» и «Перенос».

2
ответ дан 18 December 2019 в 08:30
поделиться

Я не понимаю, как это будет работать в данный момент. Обычно, по крайней мере, некоторая мысль требует изменения клиентского кода. В идеале устаревший метод должен включать комментарий, в котором говорится: «Вместо этого используйте метод X, передав значение null в качестве последнего параметра» или что-то подобное, но только в самых простых случаях это можно полностью автоматизировать. Часто будет что-то вроде «Если вам нужно иметь дело с нулевыми записями, используйте X. В противном случае используйте Y»

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

Это хорошая идея, но я подозреваю, что ее полезная реализация привнесет больше сложностей, чем устранит. Кроме того, я бы очень опасался, что инструмент сделает это за меня полностью автоматически - я, вероятно, все равно захочу предварительно просмотреть каждое изменение. В этот момент обычно не будет сэкономить много времени, если сначала сделать это вручную.

1
ответ дан 18 December 2019 в 08:30
поделиться
Другие вопросы по тегам:

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