错误: CAP#1不是新鲜的
代码:
public Boolean isAssigned(HttpServletRequest request, String name, Foo foo) {
Boolean isAssigned = false;
if ((foo.getClass()) request.getSession().getAttribute(name) != null) {
isAssigned = true;
}
return isAssigned;
}
解决方案是什么?
答案 0 :(得分:1)
可能不是你想要的,但它回答了标题中的问题。
Class<T>
类有一个cast方法,可以将任何对象强制转换为自己的类型T
。如果对象无法转换为该类型,显然会抛出ClassCastException
。
public <T> T castTo(Class<T> t, Object o) {
return t.cast(o);
}
public <T> T castTo(T t, Object o) {
return (T) castTo(t.getClass(), o);
}
public void test() {
String s = "Hello";
Object b = s;
String c = castTo(String.class, b);
String d = castTo("Some String", b);
}
答案 1 :(得分:-1)
如果你想测试是否
request.getSession().getAttribute(name)
属于Foo
类型并在其上执行方法method
之后您可以尝试使用instanceof
和cast
:
if (request.getSession().getAttribute(name) instanceof Foo) {
((Foo) request.getSession().getAttribute(name)).method();
}