Итак, у меня есть этот список Class
экземпляров. Я хочу преобразовать его в список Constructor
s, который объявляется классами.Метод, используемый ссылкой на метод - признан не использован
Я сопоставить классы заявленных конструкторов и придавить его collect
:
services.stream()
.map(Class::getDeclaredConstructors)
.collect(ArrayList::new,
this::collectConstructors,
List::addAll)
Для сбора я использую метод, который необходим доступ к контексту класса, поэтому он не является статичным.
private void collectConstructors(List<Constructor> l, Constructor<?>[] arr) {
if (arr.length == 0) {
return;
}
Class<?> clz = arr[0].getDeclaringClass();
if (arr.length > 1) {
throw new MoreThanOneConstructor(clz);
}
if (!Modifier.isPublic(arr[0].getModifiers())) {
throw new NoVisibleConstructor(clz);
}
l.add(arr[0]);
findDefinition(clz).setConstructor(arr[0]);
}
Хорошо, все хорошо работает. Плохо, как IntelliJ, так и SonarQube говорят мне, что метод collectConstructors
не используется. Уродливый, или, скорее, смешной, IntelliJ прекрасно знает, что этот метод используется, когда я нажимаю на него, и соответствующий контрагент подсвечивается.
Как получается, что инструменты говорят мне, что метод не используется? Отсутствует поддержка инструмента? Мой дерьмовый код? Что это?
Отсутствует поддержка инструмента – Holger
Всегда есть хвост ошибки, когда новые функции добавляются к слою ниже вас; Я уверен, что это было незначительное (и легко фиксируемое) упущение со своей стороны. IntelliJ очень чувствителен к отчетам об ошибках, поэтому вы можете сообщить об этом им. –
Я бы предположил, что вы используете sonarLint и что проблема исходит от него? если я прав: какая версия? – benzonico