2013-05-09 18 views
6

Istnieje kilka konstrukcji, które nie mają odpowiedników w języku Java. Przykłady byłobySkąd informacje o sklepie Scala, które nie mogą być reprezentowane w Javie?

  • nazwane parametry
  • instancji prywatnych członków

gdzie/jaki sposób Scala przechowywania informacji niezbędnych do tego materiału (jakąś flagę w pierwszym przypadku, nazwy parametrów w drugi przypadek?

Jeśli mam rację to musi być przechowywana w kodu bajtowego, ponieważ działa nawet jeśli mam tylko skompilowaną bibliotekę bez kodu źródłowego !?

+0

[Nie całkiem] (http://stackoverflow.com/q/10130106/334519) duplikat, ale blisko. To, czego szukasz, to atrybut 'ScalaSig', który jest w rzeczywistości w kodzie bajtowym. –

+0

Dziękuję. Chcesz to odpowiedzieć? –

Odpowiedz

8

Ta informacja jest zapisana w adnotacji o nazwie ScalaSig w pliku klasy (patrz np. this answer).

Możesz wyświetlić adnotację (niezbyt przyjazną dla ludzi) za pomocą javap -verbose lub parse it za pomocą wewnętrznego interfejsu API, ale ogólnie neither should be necessary.

Powiązane problemy