- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
public static List<Period> getPeriods(final int id, final Date startDate, final Date endDate) throws SomeException {
final List<?>[] result = new List<?>[1];
doInTransaction(new Script() {
@Override
public void execute() throws AnotherException {
// Some business logic
//...
result[0] = allPeriods;
}
});
return (List<Period>) result[0];
}
Не скомпилица
Не стоит недооценивать умение некоторых программистов использовать костыли.
а у тебя в ideone List[]
ты его за дурака держишь???
new List<?>[0] можно
new List<String>[0] нельзя
В байткоде нет никакой разницы между final и effectively final.
В анонимных классах и лямбдах должны использоваться final/effectively final переменные, так как в джаве замыкания отсутствуют.
У doInTransaction нет варианта, который возвращает значение? Типа
T doInTransaction(Callable<T>)
Почему нельзя было просто вернуть объект Period? либо Optional<Period>