Я думаю использовать аннотацию @Nonnull
, представленную в javax.annotaiton.Nonnull
, которая имеет политику хранения как время выполнения. С помощью этой аннотации я хочу, чтобы эта функция никогда не возвращалась к null. Я хотел бы поставить пометку на интерфейс, так что никаких будущих реализаций брейки не существующий код следующимТребуется использовать аннотацию при реализации, когда уже указано на интерфейсе
public interface X {
@Nonnull public List<A> func();
}
Теперь то, что я не понимаю, что я должен использовать ту же аннотацию на реализацию, а также. Итак, какой один из перечисленных ниже будет правильный путь, чтобы написать реализацию этого интерфейса (оба этих компиляцией):
public class XImpl implements X {
@Override
@Nonnull public List<A> func() {
//code
}
}
Или
public class XImpl implements X {
@Override
public List<A> func() {
//code
}
}
Возможный дубликат [Аннотации на интерфейсах?] (Http://stackoverflow.com/questions/146391/annotations-on-interfaces) –
@RomanC Нет. Я хочу использовать аннотации. Но вопрос в том, должен ли я использовать его для реализации, чтобы обеспечить его выполнение, или компилятор позаботится об этом. Было бы здорово, если бы кто-то мог пролить свет на 'how', а также –
Если вы хотите узнать, где использовать аннотацию, проверьте исходный код. –