假设我们有一个包含值的字符串数组(“MONTH=12”,“DAY_OF_MONTH=10”) 因此,根据输入条件,我需要添加月/日/小时到 myDate
例如 1. 如果需要添加 12 个月至今,我需要执行以下操作 日历 cal = Calendar.getInstance(); cal.add(日历.MONTH,12);
例如2.如果我需要添加10天 日历 cal = Calendar.getInstance(); cal.add(日历.DAY_OF_MONTH,12);
我可以对每种情况使用 If 条件执行上述操作,如果 String = MONTH 使用 Calender.MONTH,如果是 DAY_OF_MONTH,则使用 Calendar.DAY_OF_MONTH
所以我想通过反射来实现这一点,这样我就不需要添加 if 条件
最佳答案
您可以调用getField(String)
在 Calendar
类上,然后调用 Field.get(Object)
使用 null
获取类字段。比如,
String toGet = "DAY_OF_MONTH";
try {
Field f = Calendar.class.getField(toGet);
Integer v = (Integer) f.get(null);
System.out.printf("%d == %d%n", v, Calendar.DAY_OF_MONTH);
} catch (Exception e) {
e.printStackTrace();
}
哪些输出
5 == 5
关于java - 使用反射使用Calendar类的常量来添加月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26152038/