java - 将非特定类传递给另一个类

标签 java android

我发现自己在所有 fragment 中一遍又一遍地编写这部分代码:

public class Tab1 extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            Bundle bundle = this.getArguments();
            if (bundle == null) {
                return null;
            }
            @SuppressWarnings("unchecked")
            List<Map<String, String>> data = (List<Map<String, String>>) bundle.getSerializable("data");
            / ........../
    }

}

我不知道如何将其重构为一个类以避免重复。我在将类的引用(可能是 Tab1 或 Tab2 或 Tab3)传递到其中时遇到错误:

public class GetBundle {

    public <T> T serialize(Class clazz,String key){
        Bundle bundle = clazz.getArguments();
                        ^^^^ 
        if (bundle == null) {
            return null;
        }
        @SuppressWarnings("unchecked")
        T data = (T) bundle.getSerializable(key);
        return data;
    }
}

最佳答案

在您的 serialize 方法中,Class 类型没有方法 getArguments,因此您应该更改 clazz输入Fragment

像这样:

public <T> T serialize(Fragment clazz,String key){

关于java - 将非特定类传递给另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35665115/

相关文章:

java - 打印一个数组而不说明哪一个导致一串随机代码

java - 无法推断 ArrayList<> 的类型参数

java - 以 Int 作为第一个参数、以 String 作为第二个参数的列表 (Java)

android - 检查 Facebook 上的共享帖子是否成功或被丢弃

java - 即使未选中,首选项复选框也保持不变

java - 将线旋转指定角度(Java/Android)

java - Spring Boot 管理页面

java.lang.SecurityException : Not allowed to start service Intent error in android api level 23

java - 转换 SDK V3 : Modify Cast NotificationOptions runtime

java - Cling 库不定期触发 M 搜索请求