@Override
public void loadImage(@NonNull Context context, @Nullable String url, @Nullable Options options, @Nullable ILoaderListener<T> listener) {
Type type = listener.getClass().getGenericInterfaces()[0];
//若type是ParameterizedType的实例, 则强转,ParameterizedType可以得到泛型的类型
if (type instanceof ParameterizedType) {
ParameterizedType pType = (ParameterizedType) type;
Type[] types = pType.getActualTypeArguments();
if (types != null && types.length > 0) {
Class clazz = (Class) types[0];
try {
Log.e("test", types[0].equals(Drawable.class));
Log.e("test", clazz.equals(Drawable.class));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
如何获取泛型的类型
最新推荐文章于 2023-10-08 08:52:47 发布
本文探讨了在图像加载过程中如何通过反射机制解析泛型参数,以确定目标类型为Drawable,确保图片正确加载到ImageView中。通过对代码片段的分析,揭示了泛型参数的获取方式及其在实际应用中的重要性。

287

被折叠的 条评论
为什么被折叠?



