Java Work

语言: CN / TW / HK

判空

  • 对于list和map使用CollectionUtils.isEmpty()判空(null和size=0)
  • 对于对象或数组使用ObjectUtils.isEmpty()判定,可以尝试使用Optional.ofNullable()
  • 对于数组使用ArrayUtils.isEmpty()判空(null和length=0)
  • 对于字符串使用 StringUtils.isBlank()判空(null和空字符串)

工具类

  • 使用hutool可以方便的进行文件类型的判断唯一id(uuid,Snowflake)的生成二维码生成图片加水印BASE64编码解码图片验证码等操作

集合

  • 使用Arrays.asList()返回的list为数组的内部list,只允许遍历不允许增删,可以使用Stream流转换为list
  • Collection和map对于仅遍历可以使用增强for循环和,但如果有删除为避免错误必须使用迭代器
  • foreach遍历不允许改变变量的地址,java的参数是值传递,修改了形参的地址并不影响原来的参数,故即使你修改了值也不会同步到原变量中,故操作的变量都显示或者隐私的定义为final

JSON

fastjson

  • parseArray(String text, Class<T> clazz) 解析List
  • parseObject(String text, Class<T> clazz) 解析Object
## JSON对于null、空白字符串、“null”会返回null
if (text == null) {
   
   
    return null;
} else {
   
   
    DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance());
    JSONLexer lexer = parser.lexer;
    int token = lexer.token();
    ArrayList list;
    if (token == 8) {
   
   
        lexer.nextToken(); // nextToken() => ...if ("null".equalsIgnoreCase(ident))   this.token = 8;
        list = null;
    } 
}
  • String toJSONString(Object object) 将对象转为String
  • toJSONBytes(Object object, SerializerFeature... features) 将对象转为byte[]
  • @JSONField(serialize = false) 转String忽略

jackson

  • @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 设置Date到前台的格式
  • @JsonIgnore SpringMVC不会向前台传递该字段

IDEA

插件

  1. Lombok : 快速生成getter、setter等
  2. Alibaba Java Coding Guidelines :阿里规约扫描
  3. Rainbow Brackets :彩色括号
  4. HighlightBracketPair :高亮提示(未使用)
  5. MyBatisX :mabatisPlus提供的xml和mapper转换的插件,小鸟图标
  6. CamelCase :大小写、驼峰、下划线、中划线转换插件
    • 使用shift+Alt+u进行转换,
    • 可以在Editor中设置CamelCase的转换,一般只保留下划线驼峰两种
  7. String Manipulation :字符串工具(未使用)
  8. RestfulToolkit http :Restful请求工具
    • 打开idea,在右侧边栏会有一个标签(RestServices),打开可以看到里面是url路径
    • ctrl+\或者ctrl+alt+n会检索路径
    • Ctrl + Enter格式化json
    • 没有记忆功能,也不能加token,只是查找请求路径使用
  9. easycode :代码生成工具(个人觉得很好用,常用于生成实体类)
    • 支持自定义模板
    • 支持添加自定义列,不影响数据库
    • 支持多表同时生成
    • 支持自定义类型映射
    • 支持配置导入导出
    • 支持动态调试
    • 支持自定义属性
  10. Power Mode 11 :打字特效(纯属装逼)
  11. Nyan Progress Bar :漂亮的进度条(纯属装逼)
分享到: