object-to-list< myobject>

9vw9lbht  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(275)

我有一个方法返回一个带有引用数据的对象类型。此对象可以是classa的单个示例,也可以是classb的示例列表。
如果它是classa的单个示例,我可以很容易地将其转换为:

(ClassA) data

现在,我被第二种情况困住了,因为在第二种情况下,对象确实是一个 List<ClassB> ,如何将对象数据强制转换为 List<ClassB> 数据列表?

Object data ----> List<ClassB>

谢谢您

wsewodh2

wsewodh21#

你需要使用 instanceof 检查对象的类型
如果您使用的是java-16

if (data instanceof ClassA singleObject) {
    // do something with singleObject
} else if (data instanceof List list) {
    // do something with list
}

否则

if (data instanceof ClassA) {
    ClassA singleObject = (ClassA) data;
    // do something with singleObject
} else if (data instanceof List) {
    List<ClassB> list = (List<ClassB>) data;
    // do something with list
}

请注意,您将得到一个编译器警告,因为您正在进行未检查的赋值。你可以用 @SuppressWarnings("unchecked") 论使之消失的方法

2nbm6dog

2nbm6dog2#

下面是一个如何操作的示例:

import java.util.ArrayList;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        Object o = new ArrayList<Object>();
        List<Object> l = (List<Object>) o;
    }

}

相关问题