java - 如何动态创建一个使用反射扩展另一个动态类的类?

标签 java reflection

我正在像这样动态获取一个类:

Class<?> clazz = Class.forName("com.android.systemui.quicksettings.QuickSettingsTile");

我想创建另一个名为 DummyTile 的类,它扩展了我以前的类。它看起来像这样:

public class DummyTile extends QuickSettingsTile {

    public DummyTile(Context context, QuickSettingsController qsc) {
        super(context, qsc);
    }

    public void updateTile() {
        System.out.println("Hello");
    }

    @Override
    public void updateResources() {
        updateTile();
        super.updateResources();
    }

}

...但我不确定如何使用反射来做到这一点。 This is the class that I'm trying to extend.我也不确定如何覆盖方法并使用构造函数初始化对象。我使用反射处理过非常简单的事情,但从未处理过动态扩展另一个类。

如果有人可以通过一些片段为我指明正确的方向,我相信我能够从那里处理它。

最佳答案

你不能用反射来做到这一点。您可以使用 java.lang.reflect.Proxy 动态创建 interface 实现,仅此而已。

如果你想要更多,你必须使用第三方库。但是这些库通常在较低级别上工作,例如字节码,需要一定的经验。而且它们不能在受限环境中使用。

关于java - 如何动态创建一个使用反射扩展另一个动态类的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19450667/

相关文章:

Java Jar 类未找到异常

java - 从java中的现有图像中剪切图像的一部分

java - 多次重复 PathTransition

golang DeepEqual 和 Reflect.Zero

c# - 检查通用接口(interface)成员是否为 "Pure"(具有纯属性)

c# - 在 C# 中获取属性值(反射)的最快方法

java - 使用 Java 连接到带有 key 、证书和 cacert 文件而不是 .p12 文件的 RabbitMQ (TLS)

java - 一个接一个地发送 HTTP POST 请求

database - 如何使用没有循环指针的反射在 Golang 中调用 Scan variadic 函数?

java - 从注释处理器中的注释对象获取类字段