1、使用fastJson将实体转化为json格式字符串
- 转换的时候,如果被转换对象有父类,同时会将父类的字段也全部转换,所以如果想排除很多字段,可以 新建一个实体,包含自己需要的字段,xml文件中,返回的结果集直接封装到这个实体对应字段中;
- 使用fastJson的SerializerFeature(原文)
//使用fastjson对树形list件序列化转成json字符串,过滤掉属性值为null的属性,使空数组显示为[]而不是null
String message = JSON.toJSONString(hashmap,SerializerFeature.WriteNullListAsEmpty);
2、list的两种初始化方式
List<String> list1 = new ArrayList<>(Arrays.asList("xxx","yyy","zzz"));
list1.add("test");
List<String> list2 = Arrays.asList("xxx","yyy","zzz");//list的size就固定了,不能再add了
//list2.add("test");
//如果向list2中add,会报java.lang.UnsupportedOperationException
System.out.println(list1.size());//4
System.out.println(list2.size());//3
3、javase项目中引入jar包的方式
- 没有lib文件夹的话,在项目直接下级新建一个lib文件夹,把jar包拷贝到lib 文件夹下。
- 在项目上右击,选择“build Path”,之后选择“configure build Path”,之后找到libraries,将需要的包引入进来就可以了。
4、StringUtils的leftPad()、rightPad()、center()方法的使用(原文)
- 方法说明:分别用来对字符串进行左侧填充、右侧填充、中间填充;
- 参数说明:原字符串,目标字符串长度,填充内容(为空时用空格填充)
StringUtils.leftPad(String str,int size);
StringUtils.leftPad(String str,int size,String padStr); - 使用场景:依据上下级关系自动生成组织机构编码:查询当前节点的父节点的根据sort排序后的所有子节点,新节点的sort就在最大子节点的sort上加一,新节点的code是通过父节点的code与子节点个数加一后的值进行拼接(先用0填充);
- 代码:
//size是父节点的所有子节点的个数 priReportHeader.setCode(priReportHeader.getParent().getCode() + StringUtils.leftPad(String.valueOf(size > 0 ? size+1 : 1), 2, "0"));
- 例子:StringUtils.leftPad(“abc”, 10, “*”);
结果:*******abc
5、向页面返回json格式字符串数据:
//后台
@RequestMapping(value = {"getJson"})
public String getJson() throws IOException{
HashMap hashmap = new HashMap();
hashmap.put("headerData","header");
String message = JSON.toJSONString(hashmap);
response.getWriter().print(message);
return null;
}
//前台ajax
$.ajax({
type: "get",
url: "${ctx}/pri/getJson",
success: function(result, status, xhr) {
//将后台返回的json字符串转换成json对象
var result = eval('(' + result + ')');
//获得头部信息
var header = result.headerData;
alert(header);
},
error: function() {
}
});
6、dao.xml中查询出来的数据直接封装到hashMap中的话,如果某个字段x为空,那么hashMap中将不会有对应的健存储进去,当hashMap.get(“x”)的时候,会获得undefiend的结果;
7、java中实现多态的几种方式:
- 继承类->子类重写父类中的方法;
- 实现接口->多个类实现同一个接口,都对方法A进行实现,接口指向实现类的实例;
- 注意:多态是因为父类或接口定义的引用变量可以指向子类或者实现类的实例;
8、java中有五种创建对象的方式:
- 直接new;
- 使用class类的getInstance();
- 使用Constructor类的getInstance();
- 克隆对象;—不调用构造函数;
- 反序列化对象;—不调用构造函数;
9、数组的定义:int[] a = new int[10];//int类型的数组默认初始化为0;
10、list集合中可以直接添加集合:listAll.addAll(list);//list中的元素直接按顺序添加到listAll集合中元素的后面;