Не все описания из http://findbugs.sourceforge.net/bugDescriptions.html понятны. мне. Конечно, я могу изучить реализацию, но если кто-то более опытен, чем я, некоторые объяснения и примеры были бы замечательными.
- У вас есть несколько примеров для UI_INHERITANCE_UNSAFE_GETRESOURCE, когда возникает проблема?
- В BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR тоже не вижу проблемы. Если один тип «больше», чем другой, например, int и float, то результатом будет float. Если это Integer и Float, то это и оболочка Float. Это то, что я ожидаю.
- Действительно ли GC_UNRELATED_TYPES помогает находить ошибки? Разве компилятор не должен проверять, если, взяв данный пример,
Foo
не может войти вCollection<String>
. - Означает ли HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS что-то вроде
bla(Foo f){hashtable.put(f);}
, где «Foo» не хэшируется? FingBugs тоже «видит» подклассы? - NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH сильнее «неправильно», чем NP_ALWAYS_NULL_EXCEPTION? Почему два случая ошибки, а с NP_NULL_ON_SOME_PATH_EXCEPTION еще один? Очень похоже на меня.
- Что является примером SIO_SUPERFLUOUS_INSTANCEOF? Что-то вроде
foo(String s){if (s intenceof String) ...
. Это также выполняет нулевую проверку, но здесь это не тест... - NN_NAKED_NOTIFY. На мой взгляд описание не понятное. Смена состояния не требуется. Если я использую new Object() для ожидания и уведомления, я не изменяю состояние объекта. Или состояние является состоянием блокировки? Я не понимаю.
- SP_SPIN_ON_FIELD. Может ли случиться так, что компилятор вынесет это за пределы цикла? Для меня это не имеет смысла, потому что извне поток всегда может изменить значения. И если переменная равна
volatile
, JVM не может кэшировать значение. Так в чем смысл? - В чем разница между STCAL_STATIC_CALENDAR_INSTANCE и STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE или STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE/STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE?
- Почему XXXX.class в WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL лучше, чем getClass()? getClass() в суперклассе, вызванном из подкласса, всегда будет возвращать объект класса из подкласса, что, я думаю, хорошо.
- Что именно делает EQ_UNUSUAL? Он должен проверять, что аргумент имеет тот же тип, что и сам класс, но это не так?
- Были ли у вас когда-нибудь проблемы с перерывами? Есть ли реальная ценность с SF_SWITCH_FALLTHROUGH? Звучит сильно для меня.
- Понятия не имею, что такое TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK и TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK.