gpt4 book ai didi

Java 泛型 : Type cast issue (ClassCastException)

转载 作者:行者123 更新时间:2023-11-30 06:36:54 24 4
gpt4 key购买 nike

我无法弄清楚如何将 java 中的通用对象正确转换为扩展通用对象的类型。

例如,假设我有如下设置:

public class Parameters extends SomeCustomMap<String, String>
{
...
}

public class SomeCustomMap<K, V> implements Map<K, V>
{
public SomeCustomMap<K, V> getSubSet(...)
{
SomeCustomMap<K, V> subset;

...

return subset;
}
}

class ExampleApp
{
private void someMethod()
{
Parameters params;
Parameters paramsSubSet;

try
{
...

paramsSubSet = (Parameters) params.getSubSet(...);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

运行与上述类似的代码始终抛出 ClassCastException,我不完全理解类似的情况。对于如何正确设置与上述类似的场景的任何帮助,我们将不胜感激!即,我如何正确地将 params.getSubSet(...) 方法返回的 SomeCustomMap 对象转换回 Parameters 对象?

提前致谢!

最佳答案

您的问题是 getSubSet 返回的子集是实例 SomeCustomMap 而不是参数。

这个问题不涉及泛型。如果您不使用泛型,您将遇到同样的问题。

我不知道你是如何创建子集实例的,但也许你可以使用模板设计模式和一些泛型来解决你的问题。

关于Java 泛型 : Type cast issue (ClassCastException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4195622/

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