Ответ 1
Как упоминалось в " Как сбрасывать/проверять объект или переменную в Java" (да, я знаю, вопрос о Scala ):
Scala (консоль) имеет очень полезную функцию для проверки значений да/дамп/объектов:
scala> def b = Map("name" -> "Yudha", "age" -> 27)
b: scala.collection.immutable.Map[java.lang.String,Any]
scala> b
res1: scala.collection.immutable.Map[java.lang.String,Any] = Map((name,Yudha), (age,27))
Но если вы хотите получить более подробную информацию, вы можете дать REPL Scala Utils попробовать, чтобы получить " Простой осмотр объектов в Scala REPL "
Итак, я написал утилиту для использования в Scala REPL, которая будет распечатывать все "атрибуты" объекта.
(Примечание: "Я" здесь: Erik Engbrecht, также в BitBucket)
Вот пример использования примера:
scala> import replutils._
import replutils._
scala> case class Test(a: CharSequence, b: Int)
defined class Test
scala> val t = Test("hello", 1)
t: Test = Test(hello,1)
scala> printAttrValues(t)
hashCode: int = -229308731
b: int = 1
a: CharSequence (String) = hello
productArity: int = 2
getClass: Class = class line0$object$$iw$$iw$Test
Это выглядит довольно антиклиматическим, но, проведя часы, набрав
objName
, чтобы увидеть, что там, и тыкать в методы, кажется чудом.
Кроме того, одна из его опрятных особенностей заключается в том, что если класс возвращаемого объекта отличается от класса, объявленного в методе, он печатает как объявленный класс, так и фактический возвращаемый класс.