当前位置: 首页 > 知识库问答 >
问题:

使用反射为日历类使用常量来添加月份

夏侯英纵
2023-03-14

假设我们有一个字符串数组,它的值为(“MONTH=12”,“DAY_of_MONTH=10”),所以根据输入条件,我需要向myDate添加MONTH/days/hours

如果需要添加12个月的日期,我需要做以下日历cal=Calendar.get实例();cal.add(日历。月,12);

例2。如果我需要添加10天日历cal=Calendar。getInstance();卡尔。添加(日历,每月的第12天);

如果字符串=月份使用日历,我可以为每种情况使用If条件执行上述操作。月,如果是月中日,则使用日历。月日

所以我想通过反思来实现这一点,这样我就不需要设置if条件

共有1个答案

严俊友
2023-03-14

您可以调用日历类上的getField(String),然后调用带有nullField.get(Object)来获取类字段。有点像,

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
 类似资料:
  • 问题内容: 我有一个有一堆常量字符串的类。 我需要通过反射加载此类并检索这些常量。我可以起床: 但是我对如何检索此类中的字段感到困惑。 问题答案: 访问字段的快速样本-

  • 问题内容: 我正在使用以下代码 输出是 添加到 一月 是给 月 月。如果我们在当前日期加上30天,则可能返回正确的输出。但我想显示 2 月。有人可以帮我吗.. 问题答案: 您可以看到+1设置字段添加的日期与您的日期不同(从输出中观察到)。 如果你想几个月,那么使用代码

  • 问题内容: 我试图在我创建的特定Java类对象上列出方法列表,并尝试对其进行单元测试。 它无法说无法找到带有“ java.lang.ClassNotFoundException:类com.jr.freedom.user.User”的类。 这是测试代码: 我的项目包如下所示: 在项目文件夹中:src test User类位于src> com> jr?freedom> user(代表com.jr.fr

  • 开发一个应用程序,申请者可以通过第三方服务安排与我们团队成员的面试。我们定期向第三方发出API调用,以了解最近的任何变化,生成一个ICS文件,然后通过电子邮件将该文件发送给我们的团队成员,以便他们可以将其存储在谷歌日历中。 我遇到的问题是,当团队成员单击谷歌邮件生成的“添加到日历”链接时。它忽略我生成的UID:5179167a74d55b6fbaf6193026af14de@example.io,

  • 基本上,我的要求是通过使用反射来获取超类对象,以便获得字段名及其值。 所以,我有一门课 现在我正在使用 当我尝试使用以下代码访问该字段时,它会给我java.lang.Class类的类型。 它让我异常 有人能帮助我如何将其转换为对象,以便我可以访问文件夹

  • 您好,我对java.sql.Date的结果有问题。这是我的代码,从当前日期开始添加1周 如果当前日期是2016-02-27,那么我的MySQL中的结果是2016-03-05。但是,如果我想从当前日期开始添加1个月(对我来说总是31天),请使用此行代码 它应该是2016-03-28,但在我的MySQL中,结果是2016-02-05。任何人都可以帮助我这个结果有什么问题??