如何在scala中查看Java对象的内部结构?

时间:2015-09-12 07:16:57

标签: java scala

我正在学习jvm上的scala,并且一直试图查看URL对象的内部。

scala> val cnnLocate = new java.net.URL("http://www.cnn.com")
cnnLocate: java.net.URL = http://www.cnn.com

scala> cnnLocate.getContent() 
res14: Object = sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@3eb738bb

scala> var dump = cnnLocate.getContent() 
dump: Object = sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@672872e1

scala> dump 
res15: Object = sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@672872e1

由于我要找回一个对象,我想知道如何查看对象的内部,因为我不知道它包含什么。

任何大师?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用Java Reflection API查看对象包含的内容。

IDE中的调试器通常允许检查实时类。

对于JDK和开源类,如此处,您通常可以通过例如grepcode.com查找源代码,从那里查看结构:

答案 1 :(得分:0)

Scala构建于Java虚拟机规范之上。您可以使用Reflection API将Object作为标准Java类进行检查。您可以列出并详细说明成员,成员类型,方法名称,您可以检索指定类中的注释,克隆类规范,从代码中重写一些成员,如果您愿意,可以从中创建一个新的对象...... / p>

“Scala在Java平台(Java虚拟机)上运行,并与现有的Java程序兼容。”