Почему RetentionPolicy для @deprecated является ВРЕМЕНЕМ ВЫПОЛНЕНИЯ?

Окончательно пойдите для Писка. Это - закрытая система с точки зрения среды, или что Вы называете IDE, но это интересно сделать, веб-приложения с - ищут Побережье. Однако я всегда рекомендую всем вовлеченным в разработку смотреть на него, только понять, как разработка в изображении работает - и испытать живую систему.

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

Кроме того, я слышал, что Вы могли бы стать лучшим программистом, если Вы работаете в течение некоторого времени в Smalltalk. Я не знаю, нравится ли это правда, но мне, конечно, думать так.

14
задан escalon 24 October 2009 в 18:32
поделиться

6 ответов

Существуют некоторые фреймворки и инструменты, которые создают экземпляры объектов для работы с ними.

Например, многие редакторы пользовательского интерфейса JavaBean создают экземпляры компонентов и взаимодействуют с ними, когда пользователь манипулирует пользовательским интерфейсом.

Наличие аннотации @Deprecated, доступной во время выполнения, позволяет таким инструментам, как этот, отмечать устаревшие методы, события и свойства для пользователя.

7
ответ дан 1 December 2019 в 14:44
поделиться

Вы предполагаете, что @deprecated представляет интерес только на этапе компиляции (IDE, компилятор), но не является преградой для сценариев создания образов, где вам требуется эта информация.

Например, IDE может сообщить вам количество сайтов вызова для устаревшего метода, но как вы подойдете для определения процента времени, которое ваше приложение проводит в устаревших методах?

2
ответ дан 1 December 2019 в 14:44
поделиться

Время выполнения одного - время разработки другого, например, при написании кода, использующего API.

1
ответ дан 1 December 2019 в 14:44
поделиться

Пара практических применений, которые приходят на ум:

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

С помощью Wicket вы можете иметь политику безопасности, которая запрещает создание экземпляров любого класса на основе в содержимом .class , чтобы можно было создать систему, которая предотвращает создание экземпляров классов @Deprecated , если вы не являетесь администратором.

1
ответ дан 1 December 2019 в 14:44
поделиться

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

Это все, что у меня есть ...

1
ответ дан 1 December 2019 в 14:44
поделиться

Представьте, что вы компилируете MyClass.class с помощью устаревших методов. Если ваши аннотации @Deprecated потерялись, ваша IDE или компилятор не сможет предупредить вас, когда вы вызовете эти методы из другого класса.

0
ответ дан 1 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

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