Использует ли `productElement (i)` в отражении класса case?

Учитывая следующий фрагмент Scala:

case class Foo(v1: String, v2: Int, v3: Any)

def inspect(p: Product) =
  (0 until p.productArity).foreach(i => println(p.productElement(i)))

inspect(Foo("Moin", 77, null))

Означает ли здесь вызов inspect () , что используется отражение (каким-либо образом)?

Я бы хотел каким-то образом иметь доступ к полям case-класса, не имея чтобы явно ссылаться на них, например, с помощью foo.v1 , и я бы предпочел решение, которое не требует отражения, поскольку я ожидаю, что это повлечет за собой некоторые накладные расходы.

6
задан missingfaktor 30 October 2010 в 15:20
поделиться