如" 如何转储/检查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))
Run Code Online (Sandbox Code Playgroud)
但是如果你想了解更多细节,你可以试试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
Run Code Online (Sandbox Code Playgroud)
这看起来相当反气候,但在花了几个小时打字
objName以查看那里有什么,并且盯着方法,这似乎是一个奇迹.
此外,它的一个简洁特性是,如果返回的对象的类与方法上声明的类不同,它将打印声明的类和实际返回的类.
| 归档时间: |
|
| 查看次数: |
8520 次 |
| 最近记录: |