gpt4 book ai didi

java - 替代 String.equals 进行多次比较(无枚举)

转载 作者:行者123 更新时间:2023-11-30 09:49:54 25 4
gpt4 key购买 nike

我考虑过为我的所有字段制作枚举,但这看起来也不酷(我有许多实现类似方法的类)。有没有更好的办法?

public void writeAttribute(String attribute, Object value) {
if (attribute.equals("title")) {
title = (String) value;
} else if (attribute.equals("description")) {
description = (String) value;
} else if (attribute.equals("room")) {
room = (Room) value;
} else if (attribute.equals("type")) {
type = AppointmentType.valueOf((String) value);
} else if (attribute.equals("guestCount")) {
guestCount = (Integer) value;
}
}

根据 attribute 参数,我想将输入 value 映射到适当的字段。有没有办法清理/优化我的代码?为每个字段编写 .equals 不太优雅。

最佳答案

您是否考虑过使用 HashMap 来存储属性,而不是为每个属性单独命名成员变量?你的类(class)会有一个属性映射

Map<String,Object> attributes = new HashMap<String,Object>();

你上面的方法减少到

public void writeAttribute(String attribute, Object value) {
this.attributes.put(attribute,value);
}

由于无论如何都要进行转换,因此您将拥有在访问值时适本地转换值的方法,或者在访问点自行转换值。

关于java - 替代 String.equals 进行多次比较(无枚举),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5490082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com