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

标签 java object

任务是创建一个 Wallet 类,您可以在其中创建成员并在他们之间转账。然后用户可以选择谁给钱,谁收钱。下面是一些相关代码:

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);

所以我希望用户在扫描器中输入“adam”,然后以某种方式将“sWallet”附加到 adam,然后将其用作方法调用的对象名称。

我该怎么做,或者有更好的方法吗?

最佳答案

使用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));

您可以从 map 上按名称查找钱包。

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

wallet1.transfer(wallet2, 200);

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

关于来自用户输入的 Java 对象名称作为方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13743637/

相关文章:

java - 当2个tomcat在不同的机器上时,如何在tomcat中实现负载均衡器?

python - 如何让 Cython 使用对象文件?

java - 当对象是数组的一部分时直接访问对象的属性

java - 将枚举的 ArrayList 转换为 String

oop - 我什么时候应该在 OOP 中创建对象?

oop - 戈朗 : Method expressions instances of Object

java - 对象为 null,尽管已初始化

java同步方法中的线程安全错误

java - 我可以将变量应用于 Selenium WebDriver 上基于文本的 xPath 搜索吗?

Java - 分布式编程,RMI?