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() 方法来构造该类?
链接在这里
更新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());
}