案例的参数必须是常量,即原始/字符串常量或文字或枚举常量.您的数组是常数,但不是其内容…
在您的情况下,将指示一个枚举,下面的代码是如何编写它的示例.它将所有链接到基数的逻辑放在枚举中,您现在可以在需要的地方重复使用它-您也可以添加方法.现在,主要代码是干净且易于阅读的.
主要代码:
public static void main(String[] args) {
String input = "ATC";
char packed = 0;
for (char c : input.toCharArray()) {
Base base = Base.valueOf(String.valueOf(c));
packed = base.getPacked(packed);
}
}
您的枚举应如下所示:
public enum Base {
A {
public char getPacked(char packed) {
return packed;
}
}, T {
public char getPacked(char packed) {
return (char) (packed | 1);
}
}, C {
public char getPacked(char packed) {
return packed;
}
}, G {
public char getPacked(char packed) {
return packed;
}
};
public abstract char getPacked(char packed);
}