如何在Java中实现定制的方法,这些方法对很多类来说都很常见?

时间:2014-03-08 15:46:25

标签: java class methods macros functional-programming

在Java中需要一些可以保存我自定义方法的东西,这些方法对于我在项目中使用的许多其他类来说都很常见。

需要做什么?

4 个答案:

答案 0 :(得分:2)

听起来你正在谈论的方法是一些通用的实用方法,例如像getMax(int a, int b)这样的方法。

如果是这种情况,您可以使用helper-methods创建一个类作为静态方法。

例如:

public class Util
{
    public static int getMax(int a, int b) { ... }
}

答案 1 :(得分:1)

将您的方法放在abstract class中,并让所有类extend成为该类。或者,如果您只是定义方法签名(输入类型和输出类型,基本上),您可以使用接口并让您的类实现它。

答案 2 :(得分:0)

您可以实现一个界面。与Java中的类继承不同,Java只允许您从单个超类扩展类,类可以实现任意数量的接口。例如,假设您要使用的常用方法称为commonMethod,并且要使用此方法的两个类称为Class1和Class2。然后你的代码看起来像这样:

public interface CommonMethods{
void commonMethod(Object anyInputs);
}

public class Class1 extends JFrame, implements CommonMethods{
@override 
public void commonMethod(Object anyInputs){
//the contents of your method go here.
}
}

public class Class2 extends JFrame, implements CommonMethods{
@override 
public void commonMethod(Object anyInputs){
//the contents of your method go here.
}
}

或者,如果您计划在使用它的每个类中使用完全相同的commonMethod实现,则可以使用默认实现,这是Java 8中的新实现。在这种情况下,上面的代码看起来会更简单:

public interface CommonMethods{
default void commonMethod(Object anyInputs){
//method body goes here
}
}

public class Class1 extends JFrame, implements CommonMethods{
//method is already built in
}

public class Class2 extends JFrame, implements CommonMethods{
//method is already built in
}

我希望这有助于回答你的问题。

答案 3 :(得分:0)

创建一个Util类,并在其中创建方法,例如:

 public class Util {
    /*
     * Checks if the given string is a relevant feature
     * returns boolean true if input string qualifies as a relevant feature
    */
    static public boolean isFeature(String s) {

       List<String> irrelevant = Arrays.asList( "a", 
                                                "an",
                                                "but",
                                                "how",
                                                "will",
                                                "this",
                                                "that",
                                                "them",
                                                "they",
                                                "there",
                                                "these"
                                );

       return !(irrelevant.contains(s));
    }
 }

并且需要这些常用方法时将它们用作:

Boolean result = Util.isFeature("arbitraryWord");