后端随记

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集合中元素的后面;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值