gpt4 book ai didi

java - 在 java 1.6 中以优雅的方式切换字符串

转载 作者:行者123 更新时间:2023-11-29 05:48:37 24 4
gpt4 key购买 nike

我使用的是 java 1.6,我知道从 java 1.7 开始可以选择打开字符串但在这里我使用 if/elseif 来路由类型名称,我的问题是是否有一种优雅的方式我可以将其更改为 switch Yet

public static SwitchType<?> switchT(final String typeName,
final String memberName) {

if (typeName.equals("java.lang.String")) {
return new SwitchInputType<String>(new String(memberName + " "));

} else if (typeName.equals("char")) {
return new SwitchInputType<Character>(new Character('a'));

} else if (typeName.equals("decimal") ||
typeName.equals("java.math.BigDecimal")) {
return new SwitchInputType<BigDecimal>(new BigDecimal("34.58"));

} else if (typeName.equals("boolean")) {

}

最佳答案

你可以使用 Map<String, SwitchTypeFactory> :

public interface SwitchTypeFactory {
SwitchType<?> create(String memberName);
}

...

private static Map<String, SwitchTypeFactory> factories = new HashMap<String, SwitchTypeFactory>();

static {
factories.put("java.lang.String", new SwitchTypeFactory() {
@Override
public SwitchType<?> create(String memberName) {
return new SwitchInputType<String>(memberName + " ");
}
});

factories.put("char", new SwitchTypeFactory() {
@Override
public SwitchType<?> create(String memberName) {
return new SwitchInputType<Character>(Character.valueOf('a'))
}
});
...
}

public static SwitchType<?> switchT(final String typeName, final String memberName) {
return factories.get(typeName).create(memberName);
}

关于java - 在 java 1.6 中以优雅的方式切换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14871290/

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