我需要能够通过反射检索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());
。
我相信这个问题可能已经here和here得到解决,但是我确实看到了,如果我打电话给我:
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
}
}
如何打印正确的类型(字符串)?