Module jdk.jfr
Package jdk.jfr

Annotation Interface BooleanFlag


@Retention(RUNTIME) @Target({FIELD,TYPE,METHOD}) public @interface BooleanFlag
事件字段注解,指定该值为布尔标志,一个truefalse值。

以下示例显示了如何使用BooleanFlag注解来描述设置为布尔值的情况。此信息可供图形用户界面使用,以将设置显示为复选框。

@BooleanFlag
@Name("example.Rollback")
@Label("Rollback")
@Description("包括回滚的事务")
public static class RollbackSetting extends SettingControl {
    private boolean value = true;

    @Override
    public String combine(Set<String> values) {
        return values.contains("true") ? "true" : "false";
    }

    @Override
    public void setValue(String settingValue) {
        value = "true".equals(settingValue);
    }

    @Override
    public String getValue() {
        return Boolean.toString(value);
    }

    public boolean shouldEmit() {
        return value;
    }
}

@Name("example.Transaction")
public static class TransactionEvent extends Event {
    @Label("上下文")
    String context;

    @Label("回滚")
    boolean rollback;

    @SettingDefinition
    @Name("rollback")
    public boolean rollback(RollbackSetting rollbackSetting) {
        return rollback && rollbackSetting.shouldEmit();
    }
}
自从:
9