Intellij Idea和/或Eclipse中的方法重构器

时间:2013-04-30 20:17:18

标签: eclipse methods intellij-idea refactoring

我有很多课程(至少45课)。每个人都有自己的方法来验证在所有类中重复的东西,所以我在所有这些类中重复了代码。我想要一个方法并从所有类中调用它。

如果有以下代码来了解移动设备是否正在连接服务器

private boolean isMobileDevice(HttpServletRequest request) {
    String userAgent = request.getHeader("user-agent");
    return userAgent.indexOf("Windows CE") != -1;
}

如前所述,此方法在许多类中重复

在Intellij Idea和/或Eclipse中是否可以执行该重构?我该如何执行该重构?

2 个答案:

答案 0 :(得分:0)

private boolean isMobileDevice(HttpServletRequest request) {
        String userAgent = request.getHeader("user-agent");
        return userAgent.indexOf("Windows CE") != -1;
}

我打赌我的Eclipse会警告我这个方法可以声明为static,因为它不使用封闭类的任何字段 - 这样的方法应该被声明为静态,让你知道它不是基本上需要在封闭类中,如果有一个原因(有45个方法代替一个是原因)你可以将它移动到其他类,并将其称为公共或包方法。

编辑:它确实:The method isMobileDevice(HttpServletRequest) from the type Test can be declared as static

所以:

将其复制到其他类,将其设为public static boolean isMobileDevice(HttpServletRequest request)并在private boolean的每个类中使用。

这就是全部,但我没有看到并通过自动重构来实现它。

答案 1 :(得分:0)

使用Intellij,您可以尝试"Refactor" > "Find and Replace Code Duplicates..."。 它将用静态函数替换重复的代码。