Java开发中的一些规范和技巧

记录一下自己容易犯的一些错误和一些开发技巧,大家有好建议可以分享一下

1.包名尽量小写,复杂的名称建议拆成几个包

2.经常用到的常量可以写成一个常量类,而不要直接在代码里写成字符串

3.遇到常量和某个值做比较时(尤其是equal判断是否相当),建议将常量写在前面,这样可以避免空指针异常。

4.List集合常用方法

//list = {"1","2","2","3","4","5",}

//1、去重,返回新list
List<String> list = ...
Set<String> set = new HashSet<>();
set.addAll(list);
List<String> newList = new ArrayList<>();
newList.addAll(set);

//2、遍历 也可以用list.stream().forEach()
list.forEach(i -> {
    System.out.println(i);
})

//3、遍历,返回新集合
//这里遍历对象po的集合,取出对象的id放到新的集合里并用set进行去重
Set<String> reAuthSet = poList.stream().map(Po::getId).collect(Collectors.toSet());

//4、过滤
list.stream().filter(u -> !"2".equals(u))

5.对象复制

最简单的:

import org.springframework.beans.BeanUtils;

//把source复制给target
//缺点,性能不高,复杂对象如List<Object>无法复制
BeanUtils.copyProperties(source, target);

最好的:

新写一个对象复制类

import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface UserConvert {

    OrgConvert INSTANCE = Mappers.getMapper(OrgConvert.class);

    //基本对象复制
    UserVo getVo(UserDTO userDTO);

    //复杂对象复制
    List<UserVO> getUserVOList(List<UserPo> userPos);

    //特殊情况,将a属性复制给b
    @Mappings({
            @Mapping(source = "a", target = "b")
    })
    UserVO getUserVo(UserPo po);

}

使用:

userVo = UserConvert.INSTANCE.getUserVO(userPo);

6.尽量不用在代码里返回null值,

如果没有数据,你可以这样写:

// 返回值类型为集合
return Collections.emptyMap();

// 返回值类型为对象
return new Vo();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值