我正在像这样动态获取一个类:
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/