gpt4 book ai didi

java - 如何将对象转换为 List 类型?

转载 作者:行者123 更新时间:2023-12-02 13:07:11 24 4
gpt4 key购买 nike

我遇到一种情况,我得到一个对象作为返回类型,并且需要将其转换为 List<Object[]>类型。但这看起来比看起来更容易。

首先,当我尝试以下操作时:Object[] objectArray = (Object[])object;我收到警告,指出 (Object[]) 强制转换是多余的。为什么这是多余的呢?对象肯定与对象数组不同,对吗?嗯,根据 Intellij 的说法,它 secret 地是同一件事,如果有人能解释我为什么会这样,我将不胜感激。

由于上述现象,我也无法这样做:

Object[] objects = (Object[])callOutputs.getOutputParameterValue(entrySet.getValue());
List<Object[]> objectList = Arrays.asList(objects);

尽管将返回类型显式转换为 Object[],Arrays.asList()仍然将其视为对象。即使变量类型是 Object[] .

有人可以解释一下如何创建 List<Object[]>对象?

编辑:这是方法声明:

public abstract <T> T getOutputParameterValue(org.hibernate.procedure.ParameterRegistration<T> parameterRegistration)

最佳答案

我假设entrySet.getValue()返回ParameterRegistration<Object[]> (否则会出现编译错误)。既然如此,

Object[] objects = (Object[])callOutputs.getOutputParameterValue(entrySet.getValue());

正在类型转换Object[]Object[]getOutputParameterValue()返回其输入类型参数的类型( T 中的 ParameterRegistration<T> ),因此编译器可以检查返回类型是否为 Object[]并且您不需要显式转换它。

Arrays.asList()事情是另一回事了。

Arrays.asList(Object[])预计返回List<Object> ,因为该方法被声明为采用 T 类型的数组,并返回 List<T> .

如果你希望它是 List<Object[]> ,您可以通过添加类型见证来强制它

List<Object[]> objectList = Arrays.<Object[]>asList(objects);

仅当您只有一个参数时才需要此参数(如果您有类似 Arrays.<Object[]>asList(objects, objects1, objects2) 之类的参数,则不需要)

关于java - 如何将对象转换为 List<Object[]> 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60719951/

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