List
chứa các loại đối tượng, nhưng tôi cần phải kiểm tra xem đối tượng đó là loại A
hoặc B
:Kiểm tra loại hình Danh sách đối tượng <?> chứa
A a = new A();
B b = new B();
List<A> aL = new ArrayList<A>();
List<B> bL = new ArrayList<B>();
Làm thế nào tôi có thể kiểm tra xem List
chứa A
đối tượng hoặc B
các đối tượng?
Đây là mã:
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());
}
}
Loại tẩy xoá ngăn bạn làm điều đó. –
Trong kịch bản * rất hẹp * này, bạn có thể kiểm tra '((List) rhsList) .get (0) instanceof SegReqInfoBean'. Nó đòi hỏi bạn có một cái gì đó trong danh sách, nếu không thì không có cách nào để nói. – Dennis