时的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()方法来构造类回来?

链接这里

<强> UPDATE2:

此代码不会返回空的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是一个Java类。 java.lang.Class的它有自己的.class文件:-)的例如用于代表类的对象,它允许用户在其上执行某些操作(如使用反射API)

连载无关与.class文件在所有 - 它的目标状态是被序列化。如果你是连载Class<MyObject>并发送过线到JVM不具有MyObject.class,它仍然不会知道myObject的是什么。

为什么你需要为手动发送的.class在导线开始?有远程类加载器来处理这个问题。

其他提示

一个java.lang.Class实例涉及一种相应的“.class”的文件,但它们决不是等效的。

java.lang.Class实例编码类型签名要的“.class”的文件,而不是更大量。所以,虽然java.lang.Class可序列化,这样做不会为你提供足够的允许相应的类的实例,以在另一端被实例化。如果你想这样做,你应该发送“.class”的文件。

我认为OP是试图鉴定在其中的类文件存在类路径的文件。请参见 HTTP://asolntsev.blogspot的.com / 2008/03 /如何找到的 - 这-JAR文件-contains.html

scroll top