Android / Java:有没有一种方法来存储一个方法?
所以我有一个循环类,基本上如下:
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
和anonymous class
。
接口代码:
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。