Java 如何将泛型参数类型与另一个特定类型进行比较

Java 如何将泛型参数类型与另一个特定类型进行比较

问题描述

我在我的Android应用程序中有一个使用Java的泛型方法。在方法体中,我如何检查泛型参数是给定类型的?我想做如下操作:

public <T> T readSomething() {
   if (T == String.class) {
       ...
   }
}

解决方案

由于擦除问题,唯一的解决办法是使用类型标记:

public <T> T readSomething(Class<T> clazz) {
   if (clazz == String.class) {
       ...
   }
}

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程