enum Temp {
VALUE1(Tempclass::getField1)
VLAUE2(Tempclass::getField2)
private final Function<Tempclass, String> type;
}
class Tempclass {
String field1;
String field2;
}
使用上面的代码,我可以根据枚举值获取Tempclass
字段的值。现在如何设置字段的Tempclass
基于枚举
值例如:如果枚举
VALUE2
被选中,那么我需要设置Tempclass
field d2
到输入值。
如果我没弄错你的问题,临时课程如下
@Getter
@AllArgsConstructor
public class TempClass {
private String field1;
private String field2;
}
和枚举类作为
public enum TempEnum {
VALUE1(TempClass::getField1), VALUE2(TempClass::getField2);
private final Function<TempClass, String> type;
TempEnum(Function<TempClass, String> type) {
this.type = type;
}
public String getType(TempClass tempClass) {
return this.type.apply(tempClass);
}
}
最后得到如下值
public class TempMain {
public static void main(String[] args) {
TempClass pointer = new TempClass("some value", "an other value");
System.out.println(TempEnum.VALUE1.getType(pointer));
System.out.println(TempEnum.VALUE2.getType(pointer));
}
}
使用双消费者
VALUE1(Tempclass::getField1, Tempclass::setField1),
VALUE2(Tempclass::getField2, Tempclass::setField2);
private final BiConsumer<Tempclass, String> setter;
从枚举中获取setter,并将值传递给BiConsumer的
accept
方法。
enumInstance.getSetter().accept(tempClassInstance, "some-value");
我正在使用Jackson的ObjectMapper直接从收到的构建我的。为此,我用注释来注释我的字段(在本例中,字段是抽象方法,因为我使用AutoValue来简化样板文件)。 现在,我的POJO中的一些字段是,其中JSON显然包含一个常规字符串。我想以某种方式验证,在构建对象之前,这些JSON字段确实提交给给定的枚举类型。 下面是一个例子。 此属性的类型为,对应的JSON字段为ie.“Messag
我正在尝试根据枚举值检索一个值。基本上,假设我有以下枚举: 通过执行auth.key.get()将返回“MyKey”,而auth.mail.get()将返回“MyMail”。我搜索了一下,但没有找到答案,我之前没有尝试过任何事情,因为我完全不知道如何开始。谢谢,祝你有个愉快的一天
问题内容: 有没有一种方法可以在构造时通过Spring IoC设置此类枚举值? 我想做的是在类加载时注入在下面的代码片段中硬编码的值: 假设必须将应用程序部署在Nanos“几乎免费”的德国或法拉利“负担不起”的印度。在这两个国家中,只有三辆汽车(确定性集合),不多不少,因此是一个枚举,但它们的“内部”值可能不同。因此,这是不可变内容的上下文 初始化 的情况。 问题答案: 您是要设置自己吗? 我认为
问题内容: 我有一个枚举的类对象(我有一个),我需要获取此枚举表示的枚举值的列表。该静态函数有我需要什么,但我不知道怎么去从类对象访问它。 问题答案:
问题内容: 我们有一个带有枚举字段-的实体,我们想使用JPA注释-为它设置默认值。 但是,当我们将实体保存到数据库时,此字段的值为和。对于布尔字段- 正确的默认值()已保存。 如果改为使用:,则会在保存时得到以下异常: 我们做错了什么?为什么它仅适用于布尔值? 问题答案: 当某些SQL代码在未为emailCommunicationStatus列指定任何值的情况下插入一行时,您所做的工作很有用。在这