Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
abstract class Optional<T> уменьшит гибкость классов.of для не пустого значения и absent для нулевого и получается что-то вроде: Optional<BigInteger> value = someService.getAmout();
showValueToUser(value.or(BigInteger.ZERO));
BigInteger value = someService.getAmout();
showValueToUser(value == null ? BigInteger.ZERO : value);
null а может быть не null тогда оборачиваем его в какую-нибудь мегасложную структуру вроде Nullable<T>?
if (strField!=null){ this.strField=strField; } else { strField = ""; }
@NullSafe
private SomeJavaBean bean;
Object obj=field.getType().newInstance();
прячем ошибку в логике, затрудняя её обнаружение. Возможно, к примеру, было бы лучше в «сеттере» бросать NPE если кто-то пытается туда передать null
не боитесь распухания PermGen из-за большого количества классов, ведь ajc для каждого Around метода порождает класс. Или эту проблему как-то можно решить?
One instance of the aspect is made. This is the default.
If the aspect has no parent aspect, then by default the aspect is a singleton aspect.
public interface MyBeanInterface
/**
* .....
* @throws ValidationException if value is null or empty
*/
void setValue(@NotNull @Size(min=1) String value);
public interface MyBeanInterface {
/**
* @throws ValidationException if value is null or empty
*/
void setValue(@NotNull @Size(min = 1) String value);
}
Багобезопасный код: шаблон проектирования Null Safe