Scala Reflection - Ładowanie lub znajdowanie klas w oparciu o cechę

Czy interfejs odbicia scala (2.10) zapewnia łatwiejszy sposób przeszukiwania załadowanych klas i filtrowania listy do określonych klas, które implementują zdefiniowaną cechę? to znaczy;

trait Widget {
  def turn(): Int
}

class Cog extends Widget {
  def turn() = {
    5
  }
}

class Sprocket extends Widget {
  def turn() = {
   10
  }
}

Chcę przeszukać bibliotekę klas w poszukiwaniu wszystkiego, co rozszerza Widget i tworzy instancję tych klas. Skończyłbym z instancjąCog iSprocket.

Zrobiłem podobnie w Javie iterując przez katalogi klas, tworząc nazwy klas i używając Class.forName do załadowania obiektu klasy, a następnie sprawdzenia. Zastanawiam się tylko, czy interfejs API odbicia daje łatwiejszy sposób wyszukiwania. Wszystkie przykłady, które do tej pory widziałem, zawsze zaczynały się od instancji znanej klasy, a nie od przeszukiwania dostępnych klas.

questionAnswers(1)

yourAnswerToTheQuestion