ical4j - 根据 UID 查找事件

ical4j - Find Event based on the UID

我正在使用 ical4j 创建我的 .ical - 文件和保存事件。 但是如何在日历中找到存储的 VEvent?

我有以下代码,但它不起作用? 我得到了我的日历 -> 这是工作,我已经调试了它

public VEvent findEvent(CalendarExtern calendarExtern, String hashId) throws IOException, ParserException {

    Calendar calendar = readCalenderFromFile(calendarExtern);

    for (Component component : calendar.getComponents(Component.VEVENT)) {
          if (hashId.equals(component.getProperty(Property.UID))) {
              VEvent event = (VEvent) component;
                return event;
          }
        } 

    return null;
}

有什么想法吗?非常感谢

component.getProperty(Property.UID) returns a 属性 所以你真正想做的是:

if (hashId.equals(component.getProperty(Property.UID).getValue()))...

当然,根据您的输入,您可能希望在执行 getValue() 之前检查没有 UID 属性 的组件。

使用 ComponentGroup 查找事件最新版本的替代方法:

ComponentGroup<VEvent> group = new ComponentGroup(
         calendar.getComponents(Component.VEVENT),
         new Uid(hashId));

return group.getLatestRevision();