无效的Java

也许我可以被机器人代替进行代码审查。 有一些反馈我发现自己一遍又一遍。 这是我最不喜欢的一些:

通用代码结构

放弃其他

if returnelse就是多余的,并造成不必要的缩进。

 if (foo) { return bar;  } else { return baz;  }  // should be replaced by  if (foo) { return bar;  }  return baz; 

数组->列表->流

 List< ... > list = Arrays.asList(someArray);  list.stream(...)  // should be replaced by  Arrays.stream(someArray) 

测试代码

之前是一个重型初始化器

我们使用@Before方法来设置复杂的对象,通常我们需要进行处理以计算类实例成员需要包含的对象。 另一方面,它是过大的:

 // this is part 1 of two  private MyService myService;  @Before  public void before() { // now initialize myService = new MyService().init( 123 );  }  // the above code can be expressed in the initializer  // and is simple to read there...  // if it threw exceptions or needed some more complex  // set up, it wouldn't be  // it's in one clear place where we know where to  // find it  private MyService myService = new MyService() .init( 123 ); 

测试投掷

 @Test  public void someTest() throws IOException, JsonException {  }  // never bother with multiple or specific exception  // throws in tests nobody cares and it's just noise  // the test runner will catch anything!  @Test  public void someTest() throws Exception {  } 

断言大小

 // long-winded  assertThat(list.size()).isEqualTo(2);  // should be  assertThat(list).hasSize(2); 

AssertJ的一切

内置的JUnit断言不如AssertJ提供的断言丰富。 至少,我建议使用某种形式的assertThat ,这样您就不会最终使用对情况有点弱的断言。

您的assertEquals是错误的方法

60%的时间,当我使用assertEquals查看代码时,顺序是错误的。 提示:使用AssertJ !!! JUnit在这一点上是错误的! 我们应该从左到右阅读。

 // wrong:  assertEquals(something.getFoo(), 123 );  // it's expected IS actual  assertEquals( 123 , something.getFoo()); 

Mockito静态导入

 // this is not normal  Mockito.verify(mock).called();  // static import all mockito methods  verify(mock).called(); 

Mockito时报(1)

 // this is a tautology  verify(mock, times( 1 )).called();  // look at what verify(mock) does internally  // replace with  verify(mock).called(); 

翻译自: https://www.javacodegeeks.com/2019/10/ineffective-java.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 指定打印机打印_java 指定打印机 进行打印

代码如下&#xff1a;package com.printer;import java.io.*;import java.util.Locale;import javax.print.*;import javax.print.attribute.*;import javax.print.attribute.standard.*;public class PrintTest {public static void main(String args[]) {FileInputStream psS…

everything安装版和便携版有什么区别_国行版爱他美卓萃和普通版有什么区别,一定要选卓萃吗?...

粉丝私信&#xff1a;想给孩子喝国行版爱他美&#xff0c;有普通版和卓萃版&#xff0c;这两个版本有什么区别&#xff0c;卓萃的价格这么高&#xff0c;就一定好吗&#xff1f;奶粉速递&#xff1a;爱他美奶粉在国内算是家喻户晓的品牌了&#xff0c;吃的宝宝也比较多&#xf…

尚学堂java培训_IT培训教育平台课程分享

知乎朋友大家好&#xff0c;有以下【好课推荐】&#xff0c;并且愿意推荐给大家一起学习。更有海量学习资源与你分享&#xff0c;每天更新&#xff01;让你快速学习成长&#xff0c;无后顾之忧。1~4阶段SketchUp全能室内设计师养成班(完整版)2020版[千锋] jQuery入门教程全集(看…

java usbkey数字证书_Java创建数字证书

BouncyCastle下载&#xff1a;链接&#xff1a;http://pan.baidu.com/s/1vrcL4 密码&#xff1a;6i27package com.what21.security05;import java.io.InputStream;import java.io.OutputStream;import java.math.BigInteger;import java.security.Key;import java.security.…

modbus调试时间超时_Java调试器和超时

modbus调试时间超时在代码中存在超时的情况下如何使用调试器。 我的调试器王国&#xff01; 因此&#xff0c;您一直忙于编写一个项目&#xff0c;一切顺利&#xff0c;直到出现错误为止。 您可以进入开发人员的工具箱&#xff0c;然后拔出调试器。 很棒–您可以设置断点&…

64位微处理器_MCU芯片市场研究:主导8位MCU,但32位MCU受欧美和日本高度垄断

↑ 点击上方 “ 财经热闻解析 ” 关注我们从古老的用电子管堆出来的成吨的逻辑门到现在的超级数据中心&#xff0c;电子技术的发展走过了一代又一代&#xff0c;自然而然&#xff0c;各种芯片也在百花齐放。到了今天&#xff0c;芯片早已成了一个大家族。这么多芯片&#xff0c…

java web容器原理_javaWeb工作原理

http&#xff1a;无状态协议&#xff0c;客户端和服务器之间不需要建立持久的连接&#xff0c;通信完就断开。http的工作流程&#xff1a;1.客户端和服务器建立连接2.客户端发送请求3.服务器响应内容4.服务器关闭连接&#xff0c;客户端解析服务器发送回来的内容http请求&#…

支持Java 8

尽管Java到目前为止已经发布了版本13&#xff0c;但是有许多生产安装都与Java 8一起运行。作为专家&#xff0c;即使是最近几天&#xff0c;我也多次开发Java 8代码&#xff0c;我必须为这不是Java 6而感到高兴。另一方面&#xff0c;作为开放源代码开发人员&#xff0c;我可以…

mooc作业怎么上传附件_怎么以最低价格入门hifi音响?

方案一&#xff1a;音源 用电脑某宝一个 DIY的DAC 大概200-300元某宝一个迷你的DIY前级功放 大概200-300元某宝一个后级小甲类功放 1969小甲 大概600-1500音箱 5寸或者6寸书架箱 品牌的可以考虑 q牌 2000左右 或者某宝DIY组装的惠威 惠威m1 也是20…

java把一段英文拆成单词_java编程题,输入一段英文文章,单词之间都已经用空格分隔,本人想以每5个单词为一行输出,怎么写?请指教...

我的问题是不会输出5个单词为一行.求指导!!我的代码是以下:importjava.io.*;importjava.util.*;publicclassTest2{publicstaticvoidmain(String[]args)throwsIOException{InputStreamR...我的问题是不会输出5个单词为一行.求指导!! 我的代码是以下:import java.io.* ;import ja…

jsp标签 判断 余数_舟山铝箔纸不干胶标签制作-雷宝实业

卷筒纸不干胶印刷时&#xff0c;纸张的走向与一般印刷方法不同&#xff0c;它是以轴向跳格移动实现套印的&#xff0c;即在印版滚筒上同时装上几套印版&#xff0c;当不干胶在压印平台上每跳移一次&#xff0c;印版滚筒水平方向作往复旋转一次&#xff0c;就可实现印刷一个颜色…

java input是什么意思_java中的【...】表示什么意思

...表示可变长参数&#xff0c;就是说这个位置可以传入任意个该类型参数&#xff0c;简单来说就是个数组。(视频教程推荐&#xff1a;java课程)代码示例&#xff1a;1. testPoints(7);2. testPoints(7,9,11);3. testPoints(new Integer[]{7,9,11});1. public static void testP…

jstat –分析

jstat是一个简单的实用工具&#xff0c;在JDK中存在&#xff0c;用于提供与JVM性能相关的统计信息&#xff0c;例如垃圾收集&#xff0c;编译活动。 jstat的主要优势在于&#xff0c;它可以在运行JVM且无需任何先决条件的情况下动态捕获这些指标。 这是什么意思&#xff1f; 例…

微软电脑适合什么人用_#微软surface pro使用心得# 大学生挑电脑参考/平板与电脑二合一到底买的是什么...

surface pro6 使用一年体验。可以作为如果要买pro7 的一个参考。&#xff08;全是我个人的使用体验与心得&#xff0c;非科普与专业&#xff0c;问我专业的问了我也不知道怎么回答&#xff09;&#xff08;pro7更加具体的可以去B站看大佬们的开箱&#xff09;以下是我的个人想法…

linux 运行java jar_linux运行jar包、查看jar包进程、停止jar包

要运行java的项目需要先将项目打包成war包或者jar包&#xff0c;打包成war包需要将war包部署到tomcat服务器上才能运行。而打包成jar包可以直接使用java命令执行。在linux系统中运行jar包主要有以下四种方式。一、java -jar XXX.jar这是最基本的jar包执行方式&#xff0c;但是当…

et超排真正免狗能用版 真正好用的东西_真正合格小户型,收纳都特别能“装”...

原标题&#xff1a;真正合格小户型&#xff0c;收纳都特别能“装”说起来&#xff0c;小户型的生活在近些年来才流行起来&#xff0c;毕竟&#xff0c;房价的日益升高&#xff0c;想在城市有个家的青年们&#xff0c;只能选择小户型。其实&#xff0c;房子虽小&#xff0c;收纳…

java读取文件并显示_JAVA读取本地文件并显示到页面中

javaweb图片的显示RequestMapping(value"showImg")ResponseBodypublic void ShowImg(HttpServletRequest request,HttpServletResponse response) throws IOException{//String imgFile request.getParameter("imgFile"); //文件名// String path UrlUtil…

javafx html5_JavaFX技巧5:可观察

javafx html5即使在整个NSA监视的这段时间&#xff0c;实现JavaFX控件时也要牢记可观察性&#xff0c;这仍然是一个好主意。 与Swing相比&#xff0c;这在JavaFX中很容易实现。 旧时光 来自Swing&#xff0c;我习惯于花费大量精力和时间来使自定义控件变得可观察。 通常需要添…

苹果电脑怎么投屏到电视_tcl电视怎么投屏

除了看电视&#xff0c;现在的智能电视产品还支持手机投屏功能&#xff0c;如果在使用TCL电视&#xff0c;可以借助第三方软件实现手机投屏的功能&#xff0c;下面就为大家介绍一下&#xff0c;tcl电视怎么投屏。tcl电视怎么投屏步骤1、打开电视自带的应用商店。步骤2、搜索LBT…

重复码

介绍 在我们的Java应用程序中复制/粘贴代码通常不好&#xff0c;但是有时这是不可避免的。 例如&#xff0c;项目License3j在Feature类中为其支持的每种XXX类型提供了一个isXXX方法。 在这种情况下&#xff0c;我们要做的就是写 public boolean isBinary() { return type Type…