gpt4 book ai didi

java - 如何将java类类型转换为其基类型?

转载 作者:行者123 更新时间:2023-12-01 16:26:02 28 4
gpt4 key购买 nike

我试图弄清楚如何将类类型转换为其基本类型,以便可以编译java程序。详细来说,我们有代码如下。代码类似于https://github.com/twitter/chill/blob/develop/chill-thrift/src/main/java/com/twitter/chill/thrift/TBaseSerializer.java#L56

  interface TBase {.... }

class Deserializer {
public TBase read(Kryo kryo, Input input, Class<TBase> tBaseClass) {...}
...
}

class Event implements TBase {.... }


Deserializer = new Deserializer(...)
deserializer.read(kryo, input, Event.class);

我在使用 java8 时遇到以下错误:

incompatible types: Class<Event> cannot be converted to Class<TBase>

我们无法将 TBase 接口(interface)更改为类。有了这个约束,我该如何解决这个类型兼容性问题呢?是Class<Event>还有Class<TBase>

我还尝试声明 Class<? extends TBase>作为参数类型。通过这种方法,我得到“TBaseSerializer”中的“read(Kryo,Input,Class)”与“com.twitter.chill.thrift.TBaseSerializer”中的“read(Kryo,Input,Class)”冲突;两种方法都有相同的删除,但两者都不覆盖另一个。

最佳答案

您应该在此处使用通配符

public TBase read(Kryo kryo, Input input, Class<? extends TBase> tBaseClass) {...}

这意味着从 TBase 派生的任何内容都可以作为参数传递。您可以阅读更多 here

关于java - 如何将java类类型转换为其基类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62146173/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com