[英]Cast type using an instance
錯誤: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;
}
解決辦法是什么?
可能不是您要查找的內容,但它會回答標題中的問題。
Class<T>
類具有強制轉換方法,可以將任何對象強制轉換為自己的類型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);
}
如果要測試是否
request.getSession().getAttribute(name)
是Foo
類型,然后在其上執行方法method
,您可以簡單地嘗試使用instanceof
和cast
:
if (request.getSession().getAttribute(name) instanceof Foo) {
((Foo) request.getSession().getAttribute(name)).method();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.