我发现自己在所有 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/