我有以下代码
class driver{
static BankAccount GetAccount(Customer customer, char c) {
BankAccount accSrc = customer.S;
// savings account
if (c =='S') {
accSrc = customer.S;
// loan account
} else if (c =='L') {
accSrc = customer.L;
// checking account
} else if (c =='C') {
accSrc = customer.C;
// auto loan account
} else if (c =='A') {
accSrc = customer.A;
}
return accSrc;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Customer forrest = new Customer("Forrest Gump", 1, "42 New Street, New York, New York"); // me
Customer random = new Customer("Random Name", 2, "44 New Street, New York, New York"); // imaginary partner
//try{
String input = JOptionPane.showInputDialog("Please enter your transaction information: ");
Scanner s = new Scanner(input);
int id = Integer.parseInt(s.next());
char action = Character.toUpperCase((s.next().charAt(0)));
char accSrc = ' ';
char accDest = ' ';
double amount = 0;
if(action == 'T'){
amount = s.nextDouble();
accSrc = s.next().charAt(0);
accDest = s.next().charAt(0);
}else if(action == 'G' || action == 'I'){
accSrc = s.next().charAt(0);
}else{
//if D,W
amount = s.nextDouble();
accSrc = s.next().charAt(0);
}
//}catch (IOException e){
//}
if(id==1){
return forrest;
}else if(id == 2){
return random;
}
BankAccount src = GetAccount(forrest, accSrc);
System.out.print(src.getOwner().name);
if(action == 'T'){
BankAccount dst = GetAccount(forrest, accDest);
src.transfer(amount, dst);
.
..
}
class Customer{
protected String name;
protected int id;
protected String address;
protected BankAccount C = new BankAccount(id, this, 0);
protected BankAccount S = new BankAccount(id, this, 0);
protected BankAccount A = new BankAccount(id, this, 0);
protected BankAccount L = new BankAccount(id, this, 0);
...
}
目前我很难编码BankAccount src = GetAccount(forrest, accSrc);
如何继续编写代码,以便返回给定id号的客户实例(比如1给定返回forrest,2给出返回随机)?
答案 0 :(得分:3)
将您的课程设置为Map
,例如
Map<Integer, Customer> classMap = new HashMap<Integer, Customer>();
Customer forrest =
new Customer("Forrest Stallings", 1, "42 New Street, New York, New York");
classMap.put(1, forrest );
Customer random =
new Customer("Random Name", 2, "44 New Street, New York, New York");
classMap.put(2, random );
然后只需将您的课程命名为:
Customer forrest= classMap.get(1);
Customer random = classMap.get(2);
答案 1 :(得分:0)
您需要将您的资料存储在List中,然后按其索引检索列表项。
答案 2 :(得分:0)
更好
Customer customers[] = { forrest, random };
我可以使用customer[id]