因此,由于动态变量在Java中不是一件事,而且如果语句将非常难以处理,那么它正在寻求帮助将这个代码块转换成一个更简洁的代码块。
我查看了hashmap,它们看起来不太正确,很可能是我误解了它们。
public String m1 = "Name1";
public String m1ip = "192.1.1.1";
public String m2 = "Name2";
public String m2ip = "192.1.1.1";
public String req;
public String reqip;..。剪一些代码..。
if (requestedMachine == 1)
{ req = m1; reqip = m1ip;}
else if (requestedMachine == 2)
{ req = m2; reqip = m2ip;}
else if (requestedMachine == 3)
{ req = m3; reqip = m3ip;}
else if (requestedMachine == 4)
{ req = m4; reqip = m4ip;}
else if (requestedMachine == 5)
{ req = m5; reqip = m5ip;}requestedMachine将是一个整数,它定义了应该分配给req & reqip的值。
提前谢谢。
发布于 2014-02-23 18:04:54
定义一个机器类,包含一个name和一个ip字段。创建一个机器数组。访问位于索引requestedMachine的机器(如果数字从1开始,则访问requestedMachine - 1 ):
Machine[] machines = new Machine[] {
new Machine("Name1", "192.1.1.1"),
new Machine("Name2", "192.1.1.1"),
...
}
...
Machine machine = machines[requestedMachine - 1];发布于 2014-02-23 18:05:24
首先,创建一个Machine类:
class Machine {
String name;
String ip;
//Constructor, getters, setters etc omitted
}初始化机器数组:
Machine[] machines = ... //initialize them with values获取与requestedMachine对应的机器:
Machine myMachine = machines[requestedMachine];发布于 2014-02-23 18:16:35
这是一个伟大的候选人的一个枚举:
/**
<P>{@code java EnumDeltaXmpl}</P>
**/
public class EnumDeltaXmpl {
public static final void main(String[] ingo_red) {
test(MachineAction.ONE);
test(MachineAction.TWO);
test(MachineAction.THREE);
test(MachineAction.FOUR);
}
private static final void test(MachineAction m_a) {
System.out.println("MachineAction." + m_a + ": name=" + m_a.sName + ", ip=" + m_a.sIP + "");
}
}
enum MachineAction {
ONE("Name1", "192.1.1.1"),
TWO("Name2", "292.2.2.2"),
THREE("Name3", "392.3.3.3"),
FOUR("Name4", "492.4.4.4"),
FIVE("Name5", "592.5.5.5");
public final String sName;
public final String sIP;
private MachineAction(String s_name, String s_ip) {
sName = s_name;
sIP = s_ip;
}
}输出:
[C:\java_code\]java EnumDeltaXmpl
MachineAction.ONE: name=Name1, ip=192.1.1.1
MachineAction.TWO: name=Name2, ip=292.2.2.2
MachineAction.THREE: name=Name3, ip=392.3.3.3
MachineAction.FOUR: name=Name4, ip=492.4.4.4https://stackoverflow.com/questions/21972141
复制相似问题