java - 传递一个类并调用它的方法

标签 java android class android-fragments instantiation

考虑一个名为 MyFragmentClass 的扩展 Fragment 的类,它实现了 newInstance(args)

我想做的是为任何扩展MyFragmentClass的东西创建一个getter,这样我就可以通过newInstance(args)创建一个新的Fragment。像这样的东西:

<T extends MyFragmentClass> Class<T> getMyFragmentClass() {
    return SomeClassExtendingMyFragmentClass.class;
}

然后

public void makeNewFragment() {
    MyFragmentClass fragment = getMyFragmentClass().somehowCallNewInstance(args);
}

但是我遇到了一些困难,因为我无法真正将 new MyFragmentClass() 传递给它,因为这违背了使用 newInstance(args) 的目的,并且如果我想要的参数位于调用 get() 调用的类中,我无法提前调用 newInstance(args)

我尝试传回.class,但我只能对其调用newInstance()(无参数)。

有解决办法吗?

最佳答案

据我了解,您需要结构方法来从派生类创建实例。定义“抽象”方法并在派生类中重写它。 对于 Activity 和 fragment 之间的通信,请考虑使用具有粘性事件的 EventBus。

关于java - 传递一个类并调用它的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40333065/

相关文章:

java - 如何在 Android 中使用 SharedPreferences 在同一 Activity 中保存和检索数据

java - 如何使其他服务器适配器可见?

android - 我的小部件背景消失了 - android

android - 带有 adb shell 输入的感叹号键码

java - Android/Java - 来自类的通信返回 java.lang.nullpointerException

java - 尝试运行 derby 时 Eclipse 上出现 "Could not find or load main class org.apache.derby.tools.ij"

java - 构建单独的类(规范化?)

php - 使用android从WAMP服务器存储和检索图像

c++ - 错误 : expected `;' before ‘T’

javascript - jQuery:如何选择包含两个字符串的类