gpt4 book ai didi

java - Eclipse插件: create a treeview that displays all the deprecated methods

转载 作者:行者123 更新时间:2023-11-30 03:39:47 24 4
gpt4 key购买 nike

我是 Eclipse 插件开发新手,我正在尝试实现一个 TreeView ,显示当前/选定项目中使用的所有已弃用的方法。

它应该看起来像这样:

-jdom
--- method1
-------file1 that uses this method
-------file2 that uses this method
--- method2
-------file1 that uses this method
--- method3
-------file1 that uses this method
-log4j
----method1
-------file1 that uses this method
--- method2
--- method3

Eclipse 有一个非常好的功能,通过删除 方法 告诉您正在使用的 API 已被弃用。

有没有办法获得所有已弃用方法的完整列表?我确信考虑到 Eclipse 的功能,这可能是一个。

任何有关 Eclipse 如何引用代码进行删除线的解释也值得赞赏。

最佳答案

我是这样解决的:

       for (Map.Entry<String, Map<String, Set<String>>> entry : treeMap
.entrySet()) {
if (!entry.getValue().isEmpty()) {
LibraryModel libraryModel = new LibraryModel(entry.getKey());
root.addLibrary(libraryModel);
for (Map.Entry<String, Set<String>> methodToFileEntry : entry
.getValue().entrySet()) {
MethodModel methodModel = new MethodModel(
methodToFileEntry.getKey());
libraryModel.addMethod(methodModel);
for (String fileName : methodToFileEntry.getValue()) {
FileModel fileModel = new FileModel(fileName, fileName);
methodModel.addFile(fileModel);
}
}
}
}

HashMap 存储我访问 AST 得到的信息

          for (MethodInvocation method : visitor.getMethods()) {
if (method.resolveMethodBinding().isDeprecated()) {
for (IAnnotationBinding iab: method.resolveMethodBinding()
.getAnnotations()) {
for (IMemberValuePairBinding ivab: iab.getAllMemberValuePairs()) {
System.out.println(ivab.getKey());
System.out.println(ivab.getValue());
}
}
String deprecatedMethod = method.getName().toString();
String fileName = parse.getJavaElement().getResource()
.getName();
String packageName = method.resolveMethodBinding()
.getDeclaringClass().getQualifiedName();
String library = findLibrary(packageName);
if (treeMap.get(library).isEmpty()
|| treeMap.get(library).get(deprecatedMethod)
.isEmpty()) {
Map<String, Set<String>> innerMap = new HashMap<String, Set<String>>();
Set<String> fileNames = new HashSet<String>();
fileNames.add(fileName);
innerMap.put(deprecatedMethod, fileNames);
treeMap.put(library, innerMap);
} else {
Map<String, Set<String>> innerMap = treeMap
.get(library);
innerMap.get(deprecatedMethod).add(fileName);
}

}
}

这成功地给了我我需要的树。

关于java - Eclipse插件: create a treeview that displays all the deprecated methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27052623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com