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如果需要特定于类型的功能,请不要使用泛型