gpt4 book ai didi

java - 为什么我会收到此错误 "Type mismatch: cannot convert from Serializable to T"?

转载 作者:行者123 更新时间:2023-11-29 06:38:10 27 4
gpt4 key购买 nike

使用以下代码:

主.java

 // ...

private static <T extends Serializable> T doStuff() {
Response r = ...

// ...

return r.getDetails();//Error here
}

// ...

Response.java

 interface Response {
// ...

Serializable getDetails();

// ...
}

我在 doStuff 方法中收到此编译错误:“类型不匹配:无法从 Serializable 转换为 T”。

如果我转换返回的结果,错误就被移除了。

  return (T)r.getDetails();

但现在我有这个警告:类型安全:未检查从 Serializable 到 T 的转换@SuppressWarnings("unchecked") 会抑制警告,但我发现这个解决方案很难看。

还有更好的选择吗?

最佳答案

问题是根据您的代码,每个 T 都必须是一个 Serializable,但并非每个 Serializable 也是一个 T

假设 T1T2 都是Serializable,以下也会导致问题:

T1 t = new T2();

因为 T1T2 不相关,即使它们都是Serializable

关于java - 为什么我会收到此错误 "Type mismatch: cannot convert from Serializable to T"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17065120/

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