SonarQube监控检测指南 持续更新中...

本文介绍了Java编程中的五个常见问题:使用try-with-resources自动关闭资源,定义专用异常代替通用异常,使publicstatic字段final,避免字符串重复,以及在@RequestMapping中明确HTTP方法。
摘要由CSDN通过智能技术生成

常见问题

问题1:Use try-with-resources or close this “XXX” in a “finally” clause.

try-with-resources是JDK7之后版本的新特性,操作的类只要是实现了AutoCloseable接口就可以在try语句块退出的时候自动调用close方法关闭流资源

例:
原来使用try-catch-finally的代码
  BufferedReader br = new BufferedReader(new FileReader(file));
  try {
    return br.readLine();
  } finally {
    if (br != null) 
         br.close();
  }
改为try-with-resources的代码
  try(BufferedReader br = new BufferedReader(new FileReader(file))) {
    return br.readLine();
  }

问题2:Define and throw a dedicated exception instead of using a generic one.

定义并抛出一个专用的异常来代替一个通用的异常,大意是说不要直接抛Error,RuntimeException/Throwable/Exception这样的通用的异常。

例:
  throws Exception 通用异常 改为 throws IOException 专用异常

问题3:Make this"public static XXX" field final

如果你将这个变量设置为public访问方式,同时又是静态Static方式,就要考虑将它设置为final了,因为这个是共享变量,其它类可以随时随地将它设置为别的值。所以如果是只是当前类使用,可以考虑将公开访问方式改为私有。

例:
  public static String a=""; 改为 
  private static String a=""; 或 public static final String a="";

问题4:String literals should not be duplicated.

字符串不应该重复,如果多次用到同一字符串,建议将该字符串定义为字符串常量,再引用。

例:
  URLEncoder.encode(JSON.toJSONString(map), "UTF-8");
  改为
  URLEncoder.encode(JSON.toJSONString(map), StandardCharsets.UTF_8.name());

问题5:@RequestMapping methods should specify HTTP method.

@RequestMapping应该显式的指定HTTP请求的类型.如@GetMapping,@PostMapping,@PutMapping,@DeleteMapping,@PatchMapping。

例:
  @RequestMapping(value=URL) 改为 @PostMapping(value=URL)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值