Java 如何从字符串返回方法?

Java 如何从字符串返回方法?,java,string,reflection,Java,String,Reflection,在这一行代码中: public AbstractImagePrototype getIcon(ModelData model) { if (model.get("icon") != null) { return Resources.ICONS.lock(); } else { return null; } } 我需要更改字符串的lock(),例如 return Resources.ICONS.lock(); 如何做到这一点?我建议

在这一行代码中:

public AbstractImagePrototype getIcon(ModelData model) {
    if (model.get("icon") != null) {
        return Resources.ICONS.lock();
    } else {
        return null;
    }
}   
我需要更改字符串的
lock()
,例如

return Resources.ICONS.lock();

如何做到这一点?

我建议使用一个接受字符串作为输入的方法。然后它将比较字符串,然后调用函数

String text = "lock()";
return Resources.ICONS.text;

我建议使用一个接受字符串作为输入的方法。然后它将比较字符串,然后调用函数

String text = "lock()";
return Resources.ICONS.text;
你能行

if (command.equals("lock()"))
    lock();
// etc.
至少如果图标是一个对象。如果它是一个类,它可能是

Resources.ICONS.getClass().getMethod("lock").invoke(Resources.ICONS);
(未经测试)

我希望您知道自己在做什么,因为这可能会产生一些您不想要的效果。

您可以做到

if (command.equals("lock()"))
    lock();
// etc.
至少如果图标是一个对象。如果它是一个类,它可能是

Resources.ICONS.getClass().getMethod("lock").invoke(Resources.ICONS);
(未经测试)


我希望您知道自己在做什么,因为这可能会产生一些您不想要的效果。

如果您试图获取某种稍后需要调用的对象,您应该查看一下

如果您试图获取某种稍后需要调用的对象,你应该看一下

,也许你可以在你想做的事情中添加更多的细节。通过这种方式,也许我们可以建议一些更友好的方法。您只希望您调用的方法由字符串指定?也许您可以为您尝试执行的操作添加更多细节。通过这种方式,也许我们可以建议一些更友好的方法。您只希望您调用的方法由字符串或任何语法指定。我把所有的语言都弄糊涂了,lol。所以,不管字符串比较的相等运算符是什么,对于java来说。@Spaeth实际上,由于字符串在java(flyweight&co.)中的实现方式,你可能会很幸运,也就是说,如果你没有像
new string(“lock()”)
这样的调用。然而,您是对的,因为字符串是一个对象,所以您希望使用
.equals
来验证相等性+1或任何语法。我把所有的语言都弄糊涂了,lol。所以,不管字符串比较的相等运算符是什么,对于java来说。@Spaeth实际上,由于字符串在java(flyweight&co.)中的实现方式,你可能会很幸运,也就是说,如果你没有像
new string(“lock()”)
这样的调用。然而,您是对的,因为字符串是一个对象,所以您希望使用
.equals
来验证相等性+1我想知道那些不得不编写代码以向Java添加反射的人在编写时有多少头疼的事情,考虑到他们必须让Java按原样工作……我想知道那些不得不编写代码以向Java添加反射的人在编写时有多少头疼的事,考虑到他们必须让Java按原样工作是多么复杂。。。