Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查泛型的类型_Java_Android - Fatal编程技术网

Java 检查泛型的类型

Java 检查泛型的类型,java,android,Java,Android,我有这个方法: public <T> void onMultipleSelectionTextFinished( @NonNull ArrayList<FMultipleSelectionText.HolderItem<T>> holderItems, int payload) { // check here } MultipleSelectionTextFinished上的公共无效( @非空ArrayLis

我有这个方法:

public <T> void onMultipleSelectionTextFinished(
          @NonNull ArrayList<FMultipleSelectionText.HolderItem<T>> holderItems, 
          int payload) {
    // check here
}
MultipleSelectionTextFinished上的公共无效(
@非空ArrayList holderItems,
整数(有效载荷){
//检查这里
}
如何在其内部检查
holderItem
是否为
ArrayList
类型,然后将其强制转换为该类型,并以特殊方式处理if

编辑:

我尝试使用
instanceof
,但它说:


另外,我先将它转换成
对象,然后再转换成我需要的对象,但这不是一个优雅的解决方案:(

你不能在编译时这样做,因为在运行时。或者你可以使用反射,Guava API也提供方法来完成这个任务。
请参考此图。

Hmm……我的存在因此变得复杂。如果这是唯一的方法,我只需要改变整个结构。这样做比使用反射更快:)你可以试试看。:)@andreibogdani如果需要特定于类型的功能,请不要使用泛型