2013-04-30 102 views
1

我有许多类(至少45个)。每个人都有自己的方法来验证所有类中重复的内容,所以我在所有类中重复了代码。我想要一个方法并从所有类中调用它。Intellij Idea和/或Eclipse中的方法重构

如果有下面的代码就知道如果移动设备连接到服务器

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

正如之前所说,重复在许多类这种方法

是在IntelliJ IDEA的可能和/或Eclipse来做那个重构?以及我如何执行重构?

+0

是否有可能看一些示例代码? – 2013-05-02 05:16:07

+0

当然,这是可能的,我将我的重复功能添加到我的问题。 – igarcia 2013-05-02 15:18:41

回答

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

我敢打赌,我的Eclipse会提醒我,这个方法可以声明为static,因为它不使用封闭类的任何领域 - 这样的方法应该被声明为静态的,让你知道它是不是本质上需要在封闭类中,如果有一个原因(有45个方法取代一个是THE REASON),你可以将它移动到其他类,并且只是将它称为公共或包装方法。

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

所以:

将其复制到其他一些类,使之public static boolean isMobileDevice(HttpServletRequest request),并在每类的地方是private boolean使用。

就是这样,但我没有看到和自动重构的方式。

0

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