Я уверен, что получаю ложный результат от FindBugs. Мой код выглядит следующим образом:Ложноположительная ошибка MS_PKGPROTECT в FindBugs
public class MyClass {
protected static String fileNamePrefix;
}
И это ошибка я получаю:
поля должно быть пакет защищен
Изменяемого статическое поле может быть изменена вредоносным кодом или авария. Поле может быть защищено пакетом, чтобы избежать этой уязвимости.
Bug вид и модель: MS - MS_PKGPROTECT
Является ли это на самом деле ложный положительный или я что-то не хватает?
Ничего себе не видел, чтобы кто-то пришел ... так что создание геттера и сеттера для поля - это правильный путь, верно? должны ли эти два метода быть защищенными или публичными? – randombee
@randombee Право. Те же правила применяются к полю применительно к статическому методу. Разница с методом заключается в том, что вы можете проверить вызывающего абонента с чем-то вроде менеджера безопасности. Если это общедоступные данные, сделайте их общедоступными. Если это какой-то секрет среди ваших классов, тогда сделайте его доступ по умолчанию. – jmehrens
Одно примечание к описанию FindBugs. Хотя поле может быть изменено «случайно», исправление, безусловно, не предотвратит вредоносный код. Я могу создать свой пакет в том же пространстве пакета, например. org.apache.http.MyClass и доступ к флагом. И если это не сработало, всегда есть отражение. – dzlatkov