Dmytro Chasovskyi:
Eu tenho uma mente-block ao tentar criar-estrutura de dados que segue o padrão:
Map<String, T>
é um bloco de construção principal e T
é tanto Map<String, T>
ou quanto operador do terminal List<String>
. É possível construir qualquer coisa em semelhante Java
, essa idéia vem de linguagens funcionais como F#
ou Haskell
-como.
Eu procurei SO
, mas até agora não consegui encontrar nada que correspondam a minha ideia em Java
.
Maurice Perry:
Sim: você pode fazer algo como isto:
public abstract class T {
...
}
public class NonTerminal extends T {
private Map<String,T> map = new HashMap<>();
...
}
public class Terminal extends T {
private List<String> list;
---
}