不是来自http://findbugs.sourceforge.net/bugDescriptions.html的所有描述对我来说都很清楚.当然,我可以研究实施,但如果有人比我更有经验,一些解释和例子会很棒.
Foo不能进入Collection<String>.bla(Foo f){hashtable.put(f);}F'哪个不可清洗?FingBugs也"看到"了子类吗?foo(String s){if (s intenceof String) ....这也是一个空检查,但这不是这里的测试...volatileJVM无法缓存的值.那是什么意思?根据我的经验和测试,我可以在不咨询FindBugs源代码的情况下评论您提到的一些FindBugs描述.
UI_INHERITANCE_UNSAFE_GETRESOURCE:如果您使用this.getClass().getResource(...)相对URI,则该URI将根据类进行解析this.当子类驻留在不同的包中并且您获得子类的资源时,您最终会查看不同的位置(相对于子类).我知道一个类通过getResource()使用仅包含文件名的相对URI 调用来查找已知驻留在同一个包中的资源的示例.如果该类this.getClass()代替使用ClassName.class,而实际实例是子类,则找不到该资源.
BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR:这是关于盒装数字类型,比如Integer和Float,而不是原始数字类型,比如int和float.对于原语,你的预期是正确的:在boolean ? int : float
对int被胁迫float.但对于包装数字,会发生意外情况:In boolean ? Integer : Float,Integer未装箱并强制执行float.我原本期望对象不变,就像在
boolean ? (Number)Integer : Float.
boolean b = Boolean.TRUE;
final Integer i = 123456789;
final Float f = 1.0f;
final Number x = b ? i : f;
System.out.println("wrapped coerced: " + x); // 1.23456792E8
final Number y = b ? (Number) i : f;
System.out.println("wrapped uncoerced: " + y); // 123456789
Run Code Online (Sandbox Code Playgroud)GC_UNRELATED_TYPES:FindBugs知道一些无法为Java 1.5生成的集合方法,比如
Collection.contains(Object).这里,参数必须是类型
Object,因为否则现有的源代码可能会中断.但是任何不属于集合类型的对象肯定不会被包含,因此要求对集合Integer中的a进行
String包含可能是一个错误.
Collection<String> coll = new ArrayList<String>();
System.out.println(coll.contains(42));
Run Code Online (Sandbox Code Playgroud)HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS :?
NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH :?
SIO_SUPERFLUOUS_INSTANCEOF :?
NN_NAKED_NOTIFY :?
SP_SPIN_ON_FIELD:如果你旋转一个不是的字段,volatile只要执行循环的线程产生相同的结果,JIT就可以自由地优化代码(通过移出循环读出),而不考虑存在和其他线程的动作.这就是为什么有一个volatile关键字.我不知道这实际上导致了一个错误的例子.
STCAL_STATIC_CALENDAR_INSTANCE :?
WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL:在FindBugs示例中,该方法同步getClass()以访问其类的静态成员.子类将在子类上同步,因此超类和子类可以同时进入同步块,因为它们在不同的监视器上同步,从而导致竞争条件.
EQ_UNUSUAL :?
SF_SWITCH_FALLTHROUGH:这有时对我有帮助,因为我往往会错过
break.有趣的是,在刚刚执行的测试用例中,除了这条FindBugs消息之外,我还收到了消息SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH.
TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK :?
| 归档时间: |
|
| 查看次数: |
4467 次 |
| 最近记录: |