所以,我有這個列表的Class
實例。我想將它轉換爲由類聲明的列表Constructor
。方法引用的方法 - 識別爲未使用
我的類映射到它們宣稱的構造和用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
將新功能添加到您下面的圖層時總會有一個bug尾巴;我敢肯定,這只是他們的一小部分(而且很容易解決)的遺漏。 IntelliJ對錯誤報告非常敏感,因此您可以考慮向他們報告此問題。 –
我猜你在使用sonarLint並且問題來自它?如果我是正確的:哪個版本? – benzonico