用户输入的Java对象名称作为方法调用

Dua*_*ane 1 java object

被赋予创建钱包类的任务,您可以在其中创建成员并在他们之间转移资金.然后,用户可以选择谁给钱以及谁收到钱.这是一些相关的代码:

Wallet adamsWallet = new Wallet("Adam", 403.50);
Wallet bentsWallet = new Wallet("Bent",  873);
Wallet clarksWallet = new Wallet("Clark", 319.50);


object_name_here.transfer(other_object_name_here, 200);
Run Code Online (Sandbox Code Playgroud)

所以我希望用户例如在扫描仪中输入"adam",然后以某种方式将"sWallet"附加到adam,然后将其用作方法调用的对象名称.

我该怎么做?还是有更好的方法呢?

Jes*_*per 7

用a Map来存放钱包.例如:

Map<String, Wallet> wallets = new HashMap<>();

wallets.put("Adam", new Wallet("Adam", 403.50));
wallets.put("Bent", new Wallet("Bent",  873));
wallets.put("Clark", new Wallet("Clark", 319.50));
Run Code Online (Sandbox Code Playgroud)

您可以从地图中按名称查找钱包.

Wallet wallet1 = wallets.get("Adam");
Wallet wallet2 = wallets.get("Clark");

wallet1.transfer(wallet2, 200);
Run Code Online (Sandbox Code Playgroud)

请注意,对象没有名称 - 变量具有名称.对象不是变量; 变量是对象的引用.您可以拥有多个引用同一对象的变量.