java 反射field_java – 使用反射获取Field的泛型类型
有沒有辦法在 Java中獲取字段的泛型類型?
我有以下對象變量:
protected ScheduleView scheduleLine1;
protected ScheduleView scheduleLine2;
現在我嘗試使用反射來獲取所有具有ScheduleView作為類型的對象變量,其中WantedClass為泛型類型:
Arrays.asList(this.getClass().getDeclaredFields()).stream().map(field -> {
ScheduleView retValue = null;
System.out.println(field.getGenericType()); // prints control.ScheduleView
try {
if (field.getType() == ScheduleView.class) { // here I also want to check if the generic type is WantedClass
retValue = (ScheduleView) field.get(this);
} else {
retValue = null;
}
} catch (IllegalAccessException e) {
retValue = null;
} finally {
return retValue;
}
}).filter(scheduleView -> scheduleView != null).forEach(scheduleView -> {
/* some more code */
});
問題是如果泛型類型是WantedClass,我也想檢查if-Statement.我也嘗試使用方法getGenericType()但似乎這樣的事情是不可能的:
field.getGenericType() == ScheduleView.class
那么有沒有辦法獲得字段的泛型類型?
總結
以上是生活随笔為你收集整理的java 反射field_java – 使用反射获取Field的泛型类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux java远程调试_Visua
- 下一篇: java safevarargs_@Sa