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中使用这个功能,所以你可以使用interfaceanonymous 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。