java.lang.Class是否与实际的.class文件相同?即内容是否等价?
我想通过套接字发送.class文件,并想知道是否可以只传输java.lang.Class,而不是尝试查找和加载实际的.class文件?
详细说明(如果您需要更多信息,请阅读)
假设我有一个名为SomeObj的Java类。当编译此文件时,将生成一个名为SomeObj.class的文件。
我们也知道,如果我有SomeObj作为类型,我们可以通过执行以下操作获取其java.lang.Class类型:
Class someObjClss = SomeObj.class;
我们知道java.lang.Class实现了Serializable接口,因此它可以被传输。
那么java.lang.Class基本上是实际.class文件的对象表示吗?
更新:
假设我已经将.class文件传输到另一个主机,我是否只需使用defineClass()方法来构建类?
链接 这里 更新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.lang.Class
实例(例如Class clazz = MyObject.class
),则可以通过clazz.getResourceAsStream(clazz.getName())
读取实际的.class文件。 - ChssPly76