Скажите, что у меня что-то вроде этого:
async.inject(Map.of(
"foo", new Task<Foo>(Set.of("bar"), v -> {
v.done(null, new Foo());
}),
"bar", new Task<Bar>(Set.of("baz"), v -> {
v.done(null, new Bar());
}),
"baz", new Task<Baz>(Set.of("bar","foo"), v -> {
Bar b = v.get("bar");
v.done(null, b.getWhatever());
}),
), (err, result) -> {
Bar b = result.get("bar");
Foo f = result.get("foo");
Baz z = result.get("baz");
});
У меня есть два вопроса:
Есть ли способ проверить тип клавиш Set и сделатьуверен, что эти ключевые имена также есть на карте?AKA, у меня есть 3 вызова Set.of (), и я хочу убедиться, что любой ключ в этих наборах также находится в Map.of () Map.(Используя TypeScript, мы могли бы использовать keyof
).
Параметр Task представляет разрешенный тип - есть ли способ прочитать этот тип из других методов?Например:
Bar b = result.get ("bar");
Как компилятор узнает, что это экземпляр Bar?Есть ли способ получить проверку типов на этом?
В идеале я могу сделать некоторую проверку типов и избежать отражения, чтобы я мог поймать больше проблем во время компиляции.
И да, япопытка перенести асинхронную библиотеку из JS-land в Java :) Обратите внимание, что в приведенном выше вопросе есть некоторые циклические зависимости, просто игнорируйте их.