gpt4 book ai didi

java - 如何使用字符串调用 GWT ClientBundle 接口(interface)的方法?

转载 作者:行者123 更新时间:2023-11-29 07:06:03 24 4
gpt4 key购买 nike

我有一个与调用特定方法相关的 String 属性。

我有这个 DTO,有一个图标属性

public class MyDto
{
String icon; // "first", "second", "third" etc

public String getIcon()
{
return icon;
}
}

在我的界面中,我有这些方法:(GWT ClientBundle)

public interface MyClientBundle extends ClientBundle
{
@Source("icon_first.jpg")
ImageResource icon_first();

@Source("logo_second.jpg")
ImageResource icon_second();

@Source("icon_third.jpg")
ImageResource icon_third();
}

我目前正在使用带有选择语句的低效查找,但想通过构建字符串来选择正确的方法:

public ImageResource getValue(MyDto object)
{
return getIconFromCode(object.getIcon());
}

private ImageResource getIconFromCode(String code)
{
if(code.equalsIgnoreCase("first"))
{
return resources.icon_first();
}
else if(code.equalsIgnoreCase("second"))
{
return resources.icon_second();
}
else if(code.equalsIgnoreCase("third"))
{
return resources.icon_third();
}
else
{
return resources.icon_default();
}
}

我想构建一个字符串来选择正确的方法,比如 "icon_"+ object.getIcon()+ "()"

做了一些研究后我明白我需要使用反射?这将如何实现?

最佳答案

接口(interface) MyClientBundle 应该扩展 ClientBundleWithLookup而不是 ClientBundle。

ClientBundleWithLookup 有一个 getResource(String name) 方法,可让您从资源名称(方法名称)中检索资源。

关于java - 如何使用字符串调用 GWT ClientBundle 接口(interface)的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19642001/

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