获取通过反射返回ArrayList <>的方法的返回类型

时间:2020-03-03 04:37:13

标签: java generics arraylist reflection

我需要能够通过反射检索Object返回的ArrayList<TYPE>Method method存在的Class<?> methodReturnType = method.getReturnType(); System.out.println("Method return type: " + methodReturnType); 的类/类型。

呼叫时:

ArrayList<String>

关于返回class java.util.ArrayList 的方法,我得到:

String

其中不包含有关通用类型的信息:Type genericReturnType = method.getGenericReturnType(); System.out.println("Generic return type (name): " + genericReturnType.getTypeName());

我相信这个问题可能已经herehere得到解决,但是我确实看到了,如果我打电话给我:

java.util.ArrayList<java.lang.String>

此打印:

ArrayList<>

这暗示可能知道Object持有String类型的String

很明显,我可以通过正则表达式从文本<java.lang.String>中提取ArrayList<>,但这并不理想。

我想念什么?是否可以获取在运行时通过反射返回ArrayList<TYPE>的方法的genericReturnType.getTypeName()的类型?如果没有,class TTViewCell: UITableViewCell{ @IBOutlet var pickerView: UIPickerView! override func awakeFromNib() { super.awakeFromNib() pickerView.delegate = self } } extension TTViewCell: UIPickerViewDelegate, UIPickerViewDataSource{ func numberOfComponents(in pickerView: UIPickerView) -> Int { return 10 // set number of components } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return 5 // set number of rows } } 如何打印正确的类型(字符串)?

0 个答案:

没有答案