Java扩展类与反射类

时间:2018-09-23 11:12:52

标签: java reflection extend

我试图对我的代码进行反思,但是遇到一个问题,因为我不得不用反射的类扩展类,就像这样:

我反映了这些课程:

"some.package.a.SomeClass"
"some.package.b.SomeClass"

现在我需要用其中一个扩展另一个类

public MyClass extends SomeClass {
    @Override
    public Object...

有什么办法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

如果您的MyClass位于软件包some.package.a中,则您要扩展some.package.a.SomeClass,要扩展另一个类,您需要导入它 import some.package.b.SomeClass;

如果您的MyClass位于软件包some.package.b中,那么您将扩展some.package.b.SomeClass来扩展另一个类,则需要导入它 import some.package.a.SomeClass;

如果您的MyClass不在软件包some.package.b中,则必须导入要扩展的类import some.package.b.SomeClass;import some.package.a.SomeClass;

答案 1 :(得分:0)

使用现成的Java,您不能仅通过反射来扩展给您的类。有第三方库可让您克服此限制(see this Q&A)。

扩展一个类需要定义一个新类,并将其编译为字节码。反射在运行时发生。它本质上是一个只读API,因此您不能使用它发出新的类。

实现接口为您提供了另一种使用Proxy的选择,但是您不能指定自己的基类。