我目前正在执行一项任务,我需要修复现有项目中的弃用项。我的意思是我必须将弃用项替换为javadocs中给出的相应替换项,例如:java.util.Date.setSeconds(int):我们需要使用Calendar.set(Calendar.SECOND, int seconds)来代替这个过时的方法。我需要在eclipse IDE中使用java代码自动化这个过程,方法是在工作区中输入一个项目名称。请建议我这样做。先谢了。
java.util.Date.setSeconds(int)
Calendar.set(Calendar.SECOND, int seconds)
oxf4rvwz1#
我会通过使用正则表达式来使用IDE的搜索和替换功能。(您的参数值应该使用正则表达式捕获)没有任何特定的工具来替换弃用的代码,因为并不总是有直接的替换。有时没有替换,在其他情况下有一个完全不同的方法。
t8e9dugd2#
如果项目不是很大,可能最简单的方法是手工完成。它也可以处理没有直接替换的情况。另一种(当然更有趣)的方法是编写一个扩展eclipse JDT的eclipse插件。如果你使用的是Java 6,一种可能性是使用Java compiler API。
6ss1mwsb3#
Eclipse 4.30(Q4 2023)可能会有所帮助。它包括:
Source > Clean Up > Source Fixing选项卡页中添加了一个新的清理功能,可以将不推荐使用的方法调用替换为内联内容。当且仅当满足以下条件时,选择此选项将内联不推荐使用的方法的实现:这个被弃用的方法有一个Javadoc,它指定了一个以“use {@link ...}“或“replace by {@link ...}”结尾的@deprecated标签。{@link ...}标记引用了一个方法链接的方法实际上是在已弃用的方法的实现中调用的方法和链接方法中访问的字段在它将被内联的位置可见(例如,如果在同一个包中,使用包私有方法可以调用)例如,清理以下内容:x1c 0d1x将导致内联foo 2:中的弃用foo()调用该功能也可以作为对标记有警告或错误的弃用方法的单个调用的快速修复。您也可以选择弃用方法调用并作为快速辅助启动(选择调用并单击CTRL + 1)。
{@link ...}
3条答案
按热度按时间oxf4rvwz1#
我会通过使用正则表达式来使用IDE的搜索和替换功能。(您的参数值应该使用正则表达式捕获)
没有任何特定的工具来替换弃用的代码,因为并不总是有直接的替换。有时没有替换,在其他情况下有一个完全不同的方法。
t8e9dugd2#
如果项目不是很大,可能最简单的方法是手工完成。它也可以处理没有直接替换的情况。
另一种(当然更有趣)的方法是编写一个扩展eclipse JDT的eclipse插件。如果你使用的是Java 6,一种可能性是使用Java compiler API。
6ss1mwsb3#
Eclipse 4.30(Q4 2023)可能会有所帮助。它包括:
快速修复以替换弃用的方法调用
Source > Clean Up > Source Fixing选项卡页中添加了一个新的清理功能,可以将不推荐使用的方法调用替换为内联内容。当且仅当满足以下条件时,选择此选项将内联不推荐使用的方法的实现:这个被弃用的方法有一个Javadoc,它指定了一个以“use
{@link ...}
“或“replace by{@link ...}
”结尾的@deprecated标签。{@link ...}
标记引用了一个方法链接的方法实际上是在已弃用的方法的实现中调用的方法和链接方法中访问的字段在它将被内联的位置可见(例如,如果在同一个包中,使用包私有方法可以调用)例如,清理以下内容:x1c 0d1x
将导致内联foo 2:
中的弃用foo()调用
该功能也可以作为对标记有警告或错误的弃用方法的单个调用的快速修复。您也可以选择弃用方法调用并作为快速辅助启动(选择调用并单击CTRL + 1)。