gpt4 book ai didi

java - 检查 List 包含哪种类型的对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:08:42 25 4
gpt4 key购买 nike

List 包含对象类型,但我需要检查该对象是 A 还是 B 类型:

A a = new A();
B b = new B();

List<A> aL = new ArrayList<A>();
List<B> bL = new ArrayList<B>();

如何检查 List 是否包含 A 对象或 B 对象?

代码如下:

    SegmentDetailInfo segmentDetailInfo  = new SegmentDetailInfo();
segmentDetailInfo.setSeg_Id("1");

SegReqInfoBean segReqInfoBean = new SegReqInfoBean();
segReqInfoBean.setPageName("homepage");

List<SegmentDetailInfo> rhsList1 = new ArrayList<SegmentDetailInfo>();
rhsList1.add(segmentDetailInfo);

List<SegReqInfoBean> rhsList2 = new ArrayList<SegReqInfoBean>();
rhsList2.add(segReqInfoBean);

doProspecListCompareCheck(rhsList1);
doProspecListCompareCheck(rhsList2);

}

private static void doProspecListCompareCheck(Object rhsList) {
if (rhsList instanceof List<SegmentDetailInfo>) //wrong Check
//DoTHIS
else if(rhsList instanceof List<SegReqInfoBean>) //wrong Check
//Do THIS

}

============================================= =========

    SegmentDetailInfo segmentDetailInfo  = new SegmentDetailInfo();
segmentDetailInfo.setSeg_Id("1");

SegReqInfoBean segReqInfoBean1 = new SegReqInfoBean();
segReqInfoBean1.setPageName("Home");

List<SegmentDetailInfo> rhsList1 = new ArrayList<SegmentDetailInfo>();
rhsList1.add(segmentDetailInfo);

List<SegReqInfoBean> rhsList2 = new ArrayList<SegReqInfoBean>();
rhsList2.add(segReqInfoBean1);

String Homepage="homepage";

doProspecListCompareCheck(Homepage);
doProspecListCompareCheck(rhsList2);
doProspecListCompareCheck(rhsList2);


private static void doProspecListCompareCheck(Object rhsListObj) {
List<String> rhsStrList = new ArrayList<String>();
List<SegReqInfoBean> segReqInfoBeanList = new ArrayList<SegReqInfoBean>();
List<SegmentDetailInfo> segmentDetailInfoList = new ArrayList<SegmentDetailInfo>();


if (rhsListObj != null && rhsListObj instanceof List) {

if (((List<SegmentDetailInfo>) rhsListObj).get(0) instanceof SegmentDetailInfo){

System.out.println("SegmentDetailInfo loading");
segmentDetailInfoList = (List<SegmentDetailInfo>) rhsListObj;
}
else if(((List<SegReqInfoBean>) rhsListObj).get(0) instanceof SegReqInfoBean){

System.out.println("SegReqInfoBean loading");
segReqInfoBeanList = (List<SegReqInfoBean>) rhsListObj;
}

}else if ( rhsListObj != null && rhsListObj instanceof String) {

rhsStrList.add(rhsListObj.toString());

}

}

最佳答案

一种方法是比较 List 中的第一个 Object :

private static void doProspecListCompareCheck(List rhsList)
{
if(rhsList != null && !rhsList.isEmpty())
{
if (rhsList.get(0) instanceof SegReqInfoBean)
{

}
else if(rhsList.get(0) instanceof SegmentDetailInfo)
{

}
}
}

关于java - 检查 List<?> 包含哪种类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16745355/

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