con Java 8, si dispone di 2 modi:
n º1: se avete solo bisogno di un metodo, utilizzare lambda
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: Utilizzare le classi anonime (non molto prestazioni-saggio, ma in alcune parti non critiche si può fare)
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; }
});
}
Sì, ma gli altri potrebbero non hanno letto quell'articolo. –