java - 安卓/Java : Is there a way to store a method?

标签 java android methods

所以我有一个循环类,基本上如下:

public class Loop extends Thread {
    private boolean running;

    public Loop() {
        running = false;
    }

    public void run() {
        while(running) {
            //Do stuff
        }
    }

    public void setRunning(boolean b) {
        running = b;
    }
}

我想知道是否可以存储方法。例如,类可能看起来像这样。

public class Loop extends Thread {
    private boolean running;
    private Method method;

    public Loop() {
        running = false;
    }

    public void run() {
        while(running) {
            if(method != null)
                method.callMethod();
        }
    }

    public void setRunning(boolean b) {
        running = b;
    }

    public void setMethod(Method m) {
        method = m;
    }
}

这样的事情可能吗?

最佳答案

我假设您想要 Java 6 中的此功能,因此您可以使用接口(interface)匿名类

接口(interface)代码:

public interface Listener {
    void callMethod();
}

您的主题:

public class Loop extends Thread {
    private boolean running;
    private Listener listener;

    public Loop() {
        running = false;
    }

    public void run() {
        while(running) {
            if(listener != null)
                listener.callMethod();
        }
    }

    public void setRunning(boolean b) {
        running = b;
    }

    public void setListener(Listener listener) {
        this.listener = listener;
    }
}

设置监听器:

Loop loop = new Loop();

loop.setListener(new Listener() {
    @Override
    public void callMethod() {
    // Do stuff
    }
});

这将适用于您的用例。如果您想保存方法并将方法作为数据传递,则必须使用 Java 8(并非所有 Android API 级别都支持)或 Kotlin。

关于java - 安卓/Java : Is there a way to store a method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45672018/

相关文章:

python - TkInter 中小部件的 .pack 和 .configure 之间的区别?

java - Hashmap员工存储的编辑方法

java - 注释处理器仅在首次运行后处理修改后的类

java - 在数组索引处打印值返回哈希码

java - 我如何告诉 querydsl-maven-plugin 使用 Long 而不是 BigDecimal 生成 NumberPath?

android - DialogFragment 上的 SupportMapFragment

android - 以编程方式在 TextView 中的子底部索引文本

Android Studio - 测试配置启动应用

ruby - 如何在 ruby​​ 中打印 Fixnum 类的所有方法

java - Spring 中的自定义 Http 状态码