为什么会出现关于Java中的泛型的ClassCastException?

时间:2018-02-08 10:52:02

标签: java generics classcastexception

......以及如何修复它?

我收到以下错误:

HttpStream jos = new GsonStream(connection);
//...
List reqPairList = new LinkedList<Pair<String, String>>();
reqPairList.add(new Pair("username", "uname"));
reqPairList.add(new Pair("passwort", "123"));

// Exception in thread "main" java.lang.ClassCastException: java.util.LinkedList cannot be cast to java.lang.Class
jos.createRequest(reqPairList);

错误出现在评论

的行下方
public class GsonStream
    implements HttpStream<Class<? extends Serializable>> {
    //...
    public void createRequest(Class<? extends Serializable> obj)
        throws Exception {
        //...
    }
}

调用的方法和类如下所示:

org.slf4j.Logger

我没有对错误的解释,特别是因为实现Serializable的Pair和LinkedList也强制实现它的每个元素。 (Pair是自定义类)

1 个答案:

答案 0 :(得分:0)

我缺乏经验导致了这个错误...... 固定:

public class GsonStream<E extends Serializable>
        implements HttpStream<E> {
    //...
    public void createRequest(E obj)
            throws Exception {
        //...
    }
}

一切正常。

相关问题