0.场景
开发时,等接口经常要写测试数据,每次new ArrayList(),又是还要new 所需的Bean对象,似乎代码没多少,但是我懒啊。。。
1.解决办法
创建一个工具类,名字随便取,这里贴下关键代码,一看便会了
//这个太简单了,就不写注释了
public static List<String> testData(int count){
List<String> list=new ArrayList<>();
for (int i = 0; i < count; i++) {
list.add("");
}
return list;
}
/**
*
* @param count 返回数据的个数
* @param clazz 所需要的Bean对象
* @param <T>
* @return 返回泛型(你所传入Bean对象)的测试数据
*/
public static <T> List<T> testData(int count, Class<T> clazz){
List<T> list=new ArrayList<>();
for (int i = 0; i < count; i++) {
T obj = null;
try {
obj = clazz.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
list.add(obj);
}
return list;
}
2.使用
比如使用鸿洋大婶的BaseAdapter时,一个List的数据源是必须的
mRecyclerView = findViewById(R.id.mRecyclerView);
mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
mRecyclerView.setAdapter(new CommonAdapter<UserBean>(mContext,
R.layout.item_set_aaa_user,
AaaUtil.testData(10, UserBean.class)) {//这里就是使用的地方
@Override
protected void convert(ViewHolder viewHolder, UserBean userBean, int i) {
try {
ImgUtils.loadWebp(mContext, userBean.userUrl, viewHolder.getView(R.id.iv_aaa_logo));
viewHolder.setText(R.id.tv_user_name, userBean.userName);
} catch (Exception e) {
e.printStackTrace();
}
}
});