【发布时间】:2009-11-20 04:01:01
【问题描述】:
java.lang.Class 是否与实际的 .class 文件相同?即内容是否等效?
我想通过套接字发送 .class,并且想知道是否可以不尝试查找和加载实际的 .class 文件,而是可以只传输 java.lang.Class 吗?
详细说明(如果您想了解更多信息,请阅读)
假设我有一个名为 SomeObj 的 Java 类。编译该文件时,会生成一个名为 SomeObj.class 的文件。
我们还知道,如果我有 SomeObj 作为类型,我们可以通过以下方式获取它的 java.lang.Class 类型:
Class someObjClss = SomeObj.class;
我们知道java.lang.Class实现了Serializable,所以可以传输。
那么 java.lang.Class 基本上是实际 .class 文件的对象表示吗?
更新:
假设我已将 .class 文件传输到另一台主机,我是否只需使用 defineClass() 方法将类构造回来?
链接here
更新 2:
此代码确实返回 null InputStream。这怎么可能?
Class clazz = String.class;
String className = clazz.getName(); System.out.println(className);
URL url = clazz.getResource(className);
if( url != null )
{
String pathName = url.getPath(); System.out.println(className);
}
InputStream inputStream = clazz.getResourceAsStream(className);
if(inputStream != null )
{
System.out.println(inputStream.available());
}
【问题讨论】:
标签: java .class-file java.lang.class