2015-09-12 37 views
1

我正试图创建一个读卡器系统。有在main方法传递给它的帐户ID创建的多个读卡器对象:用扫描仪的用户输入调用一个对象?

public static void main(String[] args) { 

private String Choice; 
private String AccountID; 

    Reader r1= new Reader("1234"); 
    Reader r2= new Reader("4321"); 

    Scanner in = new Scanner(System.in); 
    System.out.println("Pick a card reader to use:"); 
    Choice= in.nextLine(); 
    System.out.println("Enter your account number:"); 
    AccountID = in.nextLine(); 

} 

我想用扫描仪挑选一个阅读器和能够调用从它的方法,如:r1.verifyInfo();

这是可能使用扫描仪?

+0

你的意思是:if(“r1”.equals(Choice))r1.verifyInfo();'? – alfasin

+0

我的意思是如果我为第一个扫描仪输入键入“r1”,我希望能够用该输入调用r1对象。 – CodingNinjaInTraining

+0

如果你只有两个阅读器 - 使用散列表是一个矫枉过正。一个简单的if/else将会诀窍。 – alfasin

回答

2

给名称为Reader S和把它们放在一个HashMap

HashMap<String, Reader> readers = new HashMap<>(); 
readers.put("r1", new Reader("1234")); 
readers.put("r2", new Reader("4321")); 

然后,你可以根据你给他们的名称检索它们(在这种情况下"r1""r2"):

String name = scanner.nextLine(); 
Reader r = readers.get(name);