Пока я пытаюсь реализовать HttpSession, я должен переопределить метод getSessionContext
. Но он вызывает устаревшие предупреждения, потому что метод и его тип возврата HttpSessionContext
устарел.Предупреждение об устаревании во время реализации HttpSession
@deprecated
тэг javadoc исправляет предупреждение об определении getSessionContext
, но не может исправить предупреждение при ввозе HttpSessionContext
. И установка @SuppressWarnings
перед импортом вызывает ошибку компиляции.
Как я могу исправить оба предупреждения?
Код:
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionContext;
public class MyServletSession implements HttpSession {
// ...
/**
* @deprecated
*/
@Override
public HttpSessionContext getSessionContext() {
throw new UnsupportedOperationException();
}
// ...
}
Предупреждение:
$ javac -Xlint:deprecation -cp /path/to/javax.servlet-api-3.0.1.jar MyServletSession.java
MyServletSession.java:5: warning: [deprecation] HttpSessionContext in javax.servlet.http has been deprecated
import javax.servlet.http.HttpSessionContext;
^
1 warning
Я считаю, что вы должны стараться избегать использования 'HttpSessionContext'. Согласно javadoc: «Устаревший. С точки зрения безопасности Java-сервлета API 2.1 (с точки зрения безопасности) без замены. Этот интерфейс будет удален в будущей версии этого API». –
Обычно усталость существует по уважительной причине: сказать вам, что если вы можете себе это позволить, вы должны следить за тем, какие новые реализации должны заменить устаревшие классы методов. В противном случае, как пометить весь класс с помощью аннотации @Override (что, конечно, не рекомендуется)? – ylabidi
Почему вы реализуете HttpSession вообще? Вы реализуете контейнер? – EJP