从FindBugs中学Java【三】

2. BX_BOXING_IMMEDIATELY_UNBOXED

double a = 100d;
double d = Double.valueOf(a);

Primitive value is boxed and then immediately unboxed.

非必要的装箱并立即拆箱操作.

Intellij 也会给这样的提示:

没什么好说的

3. IJU_SETUP_NO_SUPER

好像是个遗留问题,出现在JUnit3的时代,e.g.

JUnit3里会这么做

public class TheTest extends TestCase {
// test methods ...
public static Test suite() {
return new TestSetup(new TestSuite(TheTest.class)) {
protected void setUp() throws Exception {
super.setUp();
// set-up code called only once
}
protected void tearDown() throws Exception {
// tear-down code called only once
super.tearDown();
}
};

所以需要这个super.setUp()来初始化

JUnit4开始大规模使用Annotation,我们有@Before @After来做这些事。

当然,现在JUnit4也已经用了很多年了,诸如Spock这样的测试框架也挺好用的~

Ref: 1  2 3

时间: 2024-11-20 08:17:00

从FindBugs中学Java【三】的相关文章

从FindBugs中学Java【四】

5.TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED 6.TQ_COMPARING_VALUES_WITH_INCOMPATIBLE_TYPE_QUALIFIERS 7.TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK 8.TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK 9.TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SI

从FindBugs中学Java【一】

findbug 这里[中文列表]: http://svn.codehaus.org/sonar-plugins/tags/sonar-l10n-zh-plugin-1.1/src/main/resources/org/sonar/l10n/findbugs_zh.properties rule.findbugs.IMSE_DONT_CATCH_IMSE.name=不良实践 - 捕获可疑IllegalMonitorStateException rule.findbugs.BX_BOXING_IMM

从FindBugs中学Java【二】

IMSE_DONT_CATCH_IMSE java.lang  Class IllegalMonitorStateException java.lang.Object   java.lang.Throwable       java.lang.Exception           java.lang.RuntimeException               java.lang.IllegalMonitorStateException All Implemented Interfaces:

从FindBugs中学Java【五】

13. TLW_TWO_LOCK_WAIT TLW: Wait with two locks held (TLW_TWO_LOCK_WAIT) Waiting on a monitor while two locks are held may cause deadlock.   Performing a wait only releases the lock on the object being waited on, not any other locks.   This not necess

java三个修饰符

三个修饰符 public 属性 方法 构造方法 类 protected 属性 方法 构造方法 default 属性 方法 构造方法 类 private 属性 方法 构造方法 static 静态的 1) 属性 类变量 不属于任何对象,全类共有,可以直接用类名访问 类变量在类加载的时候分配空间并初始化,而不是对象创建时 2) 方法 静态方法可以直接用类名调用 静态方法中只能访问类的静态成员(属性+方法) (不能访问this) 非静态方法中可以访问类的静态成员 静态方法之间可以覆盖,但是 没有多态!

Android、iPhone和Java三个平台一致的加密工具

先前一直在做安卓,最近要开发iPhone客户端,这其中遇到的最让人纠结的要属Java.Android和iPhone三个平台加解密不一致的问题. 因为手机端后台通常是用JAVA开发的Web Service,Android和iPhone客户端调用同样的Web Service接口,为了数据安全考虑,要对数据进行加密.头疼的问题就来了,很难编写出一套加密程序,在3个平台间加解密的结果一致,总不能为 Android和iPhone两个客户端各写一套Web Service接口吧?我相信还会有很多朋友为此困惑,

Think in Java(三):操作符

1. "==" 和 equals (1) == 用于判断引用对象的内存地址是否相同. (2) equals比较的也是地址, 但是如果你重写了equals方法, 那么它就可以比较对象的内容. 2. 关于sizeof C和C++的sizeof()用于获取数据需要占用多少字节的内存, 之所以需要sizeof是考虑到平台移植, 因为C和C++相同的数据类型在不同的机器上占用的内存长度不一样; 而Java不需要sizeof, 因为Java的数据类型在不同的平台上占用字节是一样的, Java是跨平

从同步阻塞聊到Java三种IO方式

本文总结自 https://zhuanlan.zhihu.com/p/34408883, https://www.zhihu.com/question/19732473中愚抄的回答, http://blog.51cto.com/stevex/1284437作者自身的评论   快速理解 首先,我们要先对这几个概念有一个直观的理解,对于初学者来说,你可以这样看待这几个概念: 阻塞非阻塞 指的是在客户端 阻塞:意味着 客户端提出一个请求以后,在得到回应之前,只能等待 非阻塞:意味着 客户端提出一个请求

Java三目运算

Java的三目运算符: (表达式A)?(表达式B):(表达式C) 原理为:如果表达式A的结果为true,那么这句的运行结果为表达式B:如果为false,那么结果为表达式C 例如:(1>0)?(a=5):(a=6) 那么这句话的运行结果为a=6 开发中经常会遇到这样的问题,利用起三目运算来挺不错的.如果不用的话也可以实现 if(1>0){ a=5; } else{ a=6; } 当然还是三目简单.... 版权声明:本文为博主原创文章,未经博主允许不得转载.