с Java 8, у вас есть 2 пути:
п º1: если вам нужен только один метод, используйте лямбды
static interface Action { public int act(); }
public int forEachAct(List<Action> actionlist) {
int total = 0;
for (Action a : actionList)
total += a.act();
}
public void example() {
List<Action> actionList = new ArrayList<>();
String example = "example";
actionList.add(example::length);
forEachAct(actionList);
}
nº2: Использование анонимных классов (не очень точки зрения производительности, но в некоторых некритичных части это может быть сделано)
static interface Action {
public int act();
public String describe();
}
public void example() {
List<Action> actionList = new ArrayList<>();
String example = "example";
actionList.add(new Action(){
public int act() { return example.length(); }
public String describe() { return "Action: " + example; }
});
}
Да, но другие здесь не могли бы прочитать эту статью. –