簡體   English   中英

使用實例的類型轉換

[英]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 ,您可以簡單地嘗試使用instanceofcast

if (request.getSession().getAttribute(name) instanceof Foo) {
    ((Foo) request.getSession().getAttribute(name)).method();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM