java – 如何将方法重构为只接受类型子集的泛型方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何将方法重构为只接受类型子集的泛型方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1195字,纯文字阅读大概需要2分钟。
内容图文
![java – 如何将方法重构为只接受类型子集的泛型方法?](/upload/InfoBanner/zyjiaocheng/721/5709c14df3c646539a9340e0fe696224.jpg)
在成功编写了一个完成它应该做的事情的方法之后(下面简要缩短了示例)我想重构它不限于返回一个MyEntity列表而是一个List< SomeType扩展MyParentEntity>.因此,它应该只能接受扩展MyParentEntity但能够指定其他类型的那些类型(List< MyOtherEntity>,List< MyAwesomeEntity>等).
缩短的例子:
public static List<MyEntity> getFavList(Context context) {
String prefKey = buildKey( new MyEntity() );
List<MyEntity> entityList = new ArrayList<MyEntity>();
SharedPreferences settings = context.getSharedPreferences(prefKey, 0);
GSON gson = new GSON();
MyEntity entity = gson.fromJson(settings.getString(0, null), MyEntity.class);
entityList.add(entity);
return entityList;
}
我google了很多,但我没有找到正确的方法来使这项工作没有任何编译器错误.我很感激能够找到解决方案的任何指针.
解决方法:
您将需要传递Class和您传递给buildKey的对象.
public static <T extend MyParentEntity> List<T> getFavList(
Context context, Class<T> clazz, T key
) {
String prefKey = buildKey(key);
List<T> entityList = new ArrayList<T>();
SharedPreferences settings = context.getSharedPreferences(prefKey, 0);
GSON gson = new GSON();
MyEntity entity = gson.fromJson(settings.getString(0, null), clazz);
entityList.add(entity);
return entityList;
}
(我不知道buildKey应该是什么.)
内容总结
以上是互联网集市为您收集整理的java – 如何将方法重构为只接受类型子集的泛型方法?全部内容,希望文章能够帮你解决java – 如何将方法重构为只接受类型子集的泛型方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。