Здравствуйте, bob_marlin, Вы писали:
_>Здесь как-то уже пролетала статья
_>Adding notnull to the Java Programming LanguageАвтор(ы): Dmytro Sheyko
Дата: 08.08.2004
В данной статье рассматривается расширение языка программирования Java, которое позволяет существенно сократить количество ошибок, связанных с разыменованием нулевого указателя и обычно проявляющихся в виде неожиданного исключения java.lang.NullPointerException.
_>про notnull модификатор,
Вот ещё ссылка по теме от классика — Bertrand Meyer:
http://se.ethz.ch/~meyer/publications/lncs/attached.pdf
_>но с появлением java 5 и эту проблему можно решить через annotation,
_>кто-нибудь это уже сделал ?
_>простую и банальную
_>_>package java.lang;
_>import java.lang.annotation.*;
_>@Documented
_>@Retention(RetentionPolicy.RUNTIME)
_>@Target({
_> ElementType.FIELD,
_> ElementType.METHOD,
_> ElementType.PARAMETER,
_> ElementType.LOCAL_VARIABLE
_>})
_>public @interface NotNull {}
_>
_>не хочется, т.к. нет реально проверки (если есть, то поправте — я не вижу) на уровне выполнения
_>(т.е хочется, чтобы
_>
_>public void setSmth(@NotNull Object smth){
_>...
_>}
_>
_>выплюнул ошибку, при попытке проставить ему null)
По-моему, это не правильно. Цель в том, чтобы ловить подобные ошибки на этапе компиляции, а NPE при выполнении получить всегда успеем