Когда в определении класса есть изменяемые частные поля, и добытчики/сеттера, которые выставляют их, мы получаем исключение выглядеть следующим образом:FindBugs не обнаруживает обнажая внутреннее представление с помощью определенного пользователя классов
[INFO] path.getInsertDate() may expose internal representation by returning Ttt.insertDate path.Ttt] At Ttt.java:[line 119]
I 've добавил измененный класс:
public class Test {
public String test;
}
добавлено частное поле этого класса испытаний и геттеров/сеттеров. Но орехи проникают в нее.
public class ExposingTest {
private Test test;
//No warning here.
public Test getTest() {
return test;
}
}
Почему для этого предупреждения Findbugs проверяет только классы стандартной библиотеки java, но не пользовательские классы? Есть ли способ контролировать это?
«? Почему он проверяет только классы Java для этой ошибки, но не пользовательские классы» - Ваши пользовательские классы не написаны на Java? возможно, это объясняет это. Я действительно не понимаю, что вы спрашиваете, и какова связь между ошибкой, которую вы опубликовали, и кодом, который вы опубликовали. –
@ErwinBolwidt: Я имею в виду: почему он проверяет только стандартные классы библиотеки java se для этой ошибки, но не пользовательские классы? – Alexandr
'Ttt.java' не является стандартным классом библиотеки Java SE. О чем ты говоришь? – EJP