java中instanceof的用法和实战
山月风成 2017-12-21 11:08:13 浏览27 评论0摘要: java 中的instanceof 是一个二元操作符(运算符)运算符,由于是字母组成,所以是Java的保留关键字,但是和>=,
java 中的instanceof 是一个二元操作符(运算符)运算符,由于是字母组成,所以是Java的保留关键字,但是和>=,<=,==属同一类,它的作用是用来判断,instanceof 左边对象是否为instanceof 右边类的实例,返回一个boolean类型值。还可以用来判断子父类的所属关系。
用法:
boolean result = object instanceof class
参数:
Result:布尔类型。
Object:必选项。任意对象表达式。
Class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
在做项目中用到的实战应用。
public void exportExcelFileReflect(SXSSFSheet sheet,List<String> properties, List<Object> list, int startRow) throws Exception{
for(Object o : list){
SXSSFRow row = sheet.createRow(++startRow);//从下一行开始
SXSSFCell cell = null;
//T t = dataList.get(i);
//使用反射将数据填充到cell
int cellnum = 0;
for(String p : properties){
PropertyDescriptor pd2 = getPropertyDescriptor(o.getClass(),p);
Method rm = pd2.getReadMethod();
cell = row.createCell(cellnum);
Object value = rm.invoke(o, new Object[] {});
if(value instanceof Double){
cell.setCellValue((Double)value);
}else if(value instanceof Date){
cell.setCellValue(DateUtil.dateToLongString((Date)value));
}else if(value instanceof String){
cell.setCellValue((String)value);
}else if(value instanceof Boolean){
cell.setCellValue((Boolean)value);
}else if(value instanceof Long){
cell.setCellValue((Long)value);
}else if(value instanceof Integer){
cell.setCellValue((Integer)value);
}else if(value instanceof Float){
cell.setCellValue((Float)value);
}else if(value instanceof Short){
cell.setCellValue((Short)value);
}else if(value == null){
cell.setCellValue("");
}else{
cell.setCellValue(value+"");
}
cellnum ++ ;
}
if(startRow % 100 == 0) {
((SXSSFSheet)sheet).flushRows(100);
}
}
}
主要看if(value instanceof Double)之后那一段,其他和这个知识点无关。判断value是不是属于这个Class类的,如果是,返回是true,执行方法体中的cell实例对象的POJO方法)
版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。用云栖社区APP,舒服~
【云栖快讯】中办国办印发《推进互联网协议第六版(IPv6)规模部署行动计划》加快推进基于 IPv6 的下一代互联网规模部署,计划指出2025年末中国 IPv6 规模要达到世界第一,阿里云也第一时间宣布了将全面提供IPv6服务,那么在全面部署 IPV6 前,你需要了解都在这儿 详情请点击 评论文章 (0) (0) (0)