Я не знаю точно, что вы имеете в виду, но я понимаю, что это может быть что-то вроде этого:
List<Runnable> runMyStuff = new ArrayList<Runnable>();
String variable= "Hallo"; //needs to be effectively final
runMyStuff.add(() -> {
System.out.println(variable);
doSomething(variable);
});
runMyStuff.add(() ->{
System.out.println("This is a test");
});
runMyStuff.add(() ->{
System.out.println("2 + 2 = " + (2+2) );
});
runMyStuff.get(0).run();
runMyStuff.get(2).run();
runMyStuff.get(0).run();
runMyStuff.get(1).run();
runMyStuff.get(2).run();
приведет к:
Hallo
2 + 2 = 4
Hallo
This is a test
2 + 2 = 4
Когда вы положите переменныеили Передача параметров в тех запускаемых методах, они должны быть эффективно окончательными, иначе вы передадите их в контейнер.Вы можете перезапустить каждый метод.И в этих методах вы можете выполнять другие методы.
ПРИМЕЧАНИЕ : Если вы хотите получить возвращаемые параметры, вы можете сделать то же самое с Callable и чем ".call ()" вместо run.
РЕДАКТИРОВАТЬ : Под этим условием подразумевается символ Проверка или что-то подобное Пример для проходного метода charaCheck с интерфейсом:
public interface CharacterChecker{
//is a template returns boolean, need a String param
public boolean call(String chara);
}
Метод, который выполняет метод проходовтип "CHaracterChecker"
public static void excecutePassedMethod(CharacterChecker checker, String chara) {
System.out.println(chara + ": " + checker.call(chara));
}
Две разные реализации "Проверка символов"
CharacterChecker goodChecker = new CharacterChecker() {
@Override
public boolean call(String chara) {
return "good".equals(chara);
}
};
CharacterChecker lazyCheker = new CharacterChecker() {
@Override
public boolean call(String chara) {
return "lazy".equals(chara);
}
};
Методы, которые переданы "метод" (Больше похоже на объект класса anonymos сметод)
excecutePassedMethod(goodChecker, "bad");
excecutePassedMethod(goodChecker, "good");
excecutePassedMethod(goodChecker, "jolly");
excecutePassedMethod(lazyCheker, "frisky");
excecutePassedMethod(lazyCheker, "lazy");
результат будет:
bad: false
good: true
jolly: false
frisky: false
lazy: true