Какие `$ адаптированные $` методы я вижу в JMC / JFR? - PullRequest
1 голос
/ 22 апреля 2019

При тестировании некоторого скала-кода с помощью Java Flight Recorder / Mission Control я вижу несколько методов, в названии которых есть $adapted$. Я могу придумать несколько возможностей для этого, глядя на подпись.

  • Это то же самое, что и лямбда-функции java-8? то есть это не будет генерировать выделения кучи?
  • Являются ли они специализацией дженериков (в Scala или шаблонов в Java)?
  • Или это какой-то другой вид оптимизации?

Где я могу узнать больше об этом?

1 Ответ

0 голосов
/ 22 апреля 2019

Я думаю, это какое-то приспособление. Компилятор Scala обычно использует $ в именах классов, и некоторые java-коды могут потерпеть неудачу, он может генерировать некоторые дополнительные методы, пакеты и т. Д. При создании, скажем, статического объекта

object Foo {
    case class Bar()
}

val bar = new Foo.Bar().getClass().getSimpleName() shouldEqual "Foo$Bar"

Так что, вероятно, он был сгенерирован компилятором или какой-то другой библиотекой уровня-магии-макроса-библиотеки

...