Scala - Como compilar código de um arquivo externo em tempo de execução?
Quero criar um programa Scala que aceite arquivos Scala como parâmetros que podem personalizar a execução do programa. Em particular, desejo fornecer em tempo de execução arquivos que contenham implementações de métodos que serão invocados pelo programa. Como posso depender adequadamente de arquivos externos e invocar seus métodos dinamicamente em tempo de execução? Idealmente, eu também gostaria que esses arquivos pudessem depender de métodos e classes no meu programa.
Cenário de exemplo: Eu tenho uma função que contém a linhaval p: Plant = Greenhouse.getPlant()
, e asGreenhouse
aula com ogetPlant
O método é definido em um dos arquivos que serão fornecidos no tempo de execução. Nesse arquivo, o métodogetPlant
retorna umRose
, OndeRose <: Plant
ePlant
é definido no programa original. Como faço para alcançar (ou aproximar) essa interdependência, assumindo que os arquivos sejam unidos apenas no tempo de execução e não no tempo de compilação?