有什么方法可以更改此代码,以便我可以删除未经检查的警告
ArrayList<String> keys = new ArrayList<String>();
// do some stuff then
// save keys in session
HttpServletRequest request = getThreadLocalRequest();
HttpSession session = request.getSession(true);
session.setAttribute(uuid, keys);
// get keys from session sometime later
@SuppressWarnings("unchecked")
ArrayList<String> keys = (ArrayList<String>) session.getAttribute(uuid);
Run Code Online (Sandbox Code Playgroud)
你不能.session.getAttribute()类型不安全.
您可以创建一个包装器方法,以便只@SuppressWarnings在一个位置:
public final class SessionUtils {
@SuppressWarnings("unchecked")
public static <T> T getSessionAttribute(HttpSession session, String name) {
return (T) session.getAttribute(name);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以使用,没有警告:
List<String> keys = SessionUtils.getAttribute(session, uuid);
Run Code Online (Sandbox Code Playgroud)