gpt4 book ai didi

java - 通过参数调用不同的方法

转载 作者:太空宇宙 更新时间:2023-11-04 07:57:25 25 4
gpt4 key购买 nike

我有一个应用程序,它应该根据参数的输入调用不同的方法。到目前为止,我的想法基本上是,创建一个 Switch 并按其大小写分别调用方法。示例:

switch (methodName)
{
case "method1":
method1();
break;
case "method2":
method2();
break;
default:
System.out.println(methodName + " is not a valid method!");
}

我正在考虑通过给定字符串调用该方法的选项,如本问题中提供的:

How do I invoke a Java method when given the method name as a string?

但后来我从其中一个答案中读到,这并不安全。大家觉得怎么样?

最佳答案

如果您需要从字符串转到方法调用,反射可能是您的最佳选择。不涉及很大的安全问题,特别是如果您限制允许调用的方法集。使用Map<String, Method>是实现它的一种方法,具有提高性能的好处,因为主要瓶颈不是反射方法调用,而是方法查找。

不假思索,您可以通过Map<String, Callable>来实现这一点,您在其中实现 Callable每个方法调用都有一个匿名类实例。样板代码多了很多,但“类型安全”。

关于java - 通过参数调用不同的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13398885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com