gpt4 book ai didi

java - 如何删除此代码示例的重复代码?

转载 作者:行者123 更新时间:2023-12-02 07:18:15 24 4
gpt4 key购买 nike

给出以下代码:

public interface DTMFKeys {

public String getKeyStr();

public static enum Sign implements TahoeDTMFKeys {

SIGN_1("*1"), SIGN_2("*2"), SING_3("*3"), SIGN_4("*4"), SIGN_5("*5"), SIGN_6(
"*6"), SIGN_7("*7"), SIGN_8("*8"), SIGN_9("*9");

private String keyStr;

private Sign(String keyStr) {
this.keyStr = keyStr;
}

@Override
public String getKeyStr() {
return keyStr;
}
}

public static enum Pound implements TahoeDTMFKeys {

POUND_1("1#"), POUND_2("2#"), POUND_3("3#"), POUND_4("4#"), POUND_5(
"5#"), POUND_6("6#"), POUND_7("7#"), POUND_8("8#"), POUND_9(
"9#");

private String keyStr;

private Pound(String keyStr) {
this.keyStr = keyStr;
}

@Override
public String getKeyStr() {
return keyStr;
}
}
}

如何删除重复的代码:

private Sign(String keyStr){
this.keyStr=keyStr;
}

@Override
public String getKeyStr() {
return keyStr;
}

最佳答案

代码不多,所以我真的不用担心重构它。 Java 枚举不能扩展其他类。避免代码重复实际上是重复大量复杂的逻辑,而不是 getter/setter 字段。

如果您真的担心“重复”,您可以完全取消枚举吗?

public static String getKeyString(int n, char sign) {
if (n < 0 || n > 9) throw new IllegalArgumentException();
if (sign == '#') {
return ""+n+sign;
else if (sign == '*') {
return ""+sign+n;
else {
throw new IllegalAgumentException()
}
}

此外,SING_3 拼写错误。

关于java - 如何删除此代码示例的重复代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638662/

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