我可以创建一个接受它将执行的参数的方法

时间:2017-06-09 17:38:33

标签: java methods lwjgl

我将把我的问题变成新的。

这是我现在拥有的(LWJGL而不是JButton):

public static boolean isButtonClicked(String buttonName){
    Button b = getButton(buttonName);
    float mouseY = essentials.Boot.HEIGHT - Mouse.getY() - 1;
    if (Mouse.getX() > b.getX() && Mouse.getX() < b.getX() + b.getWidth() &&
        mouseY > b.getY() && mouseY < b.getY() + b.getHeight()){
        return true;
    }
    return false;
}

那是我主要的课程

if(Ui.isButtonClicked("buttonName")/*Takes a name of a button as a argument*/){
        System.out.println();
}

所以我不希望在我的主要内容中有几个if语句。但如果单击按钮,它总是不同于我想要做的事情。所以我的问题是,是否有办法做这样的事情。如果你还不知道我的意思我只是要删除帖子。

2 个答案:

答案 0 :(得分:1)

您可以使用Interface / Lambda将方法传递给另一个方法。例如:

public interface Procedure {
    void act();
}
public void executeCommand(Procedure proc){
    proc.act();
}
//...
// pass a method using lambda expression:
    executeCommand(()->{system.out.println("Hello world"});

//pass a method using traditional way (anonymous class)
    executeCommand(new Procedure() {

        public void act() {
            system.out.println("Hello world");
        }
    });

答案 1 :(得分:-3)

你的意思是这样的事情:

public static void doSmth(String value) {
    System.out.println(value);
 }
//When you call it
doSmth("Hello world");