所以我有一个循环类,基本上如下:
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/