gpt4 book ai didi

相当于 typeof(SomeClass) 的 Java

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:33:39 26 4
gpt4 key购买 nike

我尝试实现一个

Hashtable<string, -Typeof one Class-> 

在 Java 中。但我不知道如何让它工作。我试过了

Hashtable<String, AbstractRestCommand.class>

但这似乎是错误的。

顺便说一句。我希望它在运行时为每个反射创建一个类的新实例。

所以我的问题是,如何做这类事情。

编辑:

我有抽象类“AbstractRestCommand”。现在我想创建一个包含许多命令的哈希表,如下所示:

        Commands.put("PUT",  -PutCommand-);
Commands.put("DELETE", -DeleteCommand-);

其中 PutCommand 和 DeleteCommand 扩展了 AbstractRestCommand,以便我可以使用

创建一个新实例
String com = "PUT"
AbstractRestCommand command = Commands[com].forName().newInstance();
...

最佳答案

您想创建一个字符串到类的映射吗?这可以通过以下方式完成:

Map<String, Class<?>> map = new HashMap<String, Class<?>>();
map.put("foo", AbstractRestCommand.class);

如果您想将可能的类型限制为某个接口(interface)或公共(public)父类(super class),您可以使用有界通配符,稍后将允许您使用映射的类对象来创建该类型的对象:

Map<String, Class<? extends AbstractRestCommand>> map =
new HashMap<String, Class<? extends AbstractRestCommand>>();
map.put("PUT", PutCommand.class);
map.put("DELETE", DeleteCommand.class);
...
Class<? extends AbstractRestCommand> cmdType = map.get(cmdName);
if(cmdType != null)
{
AbstractRestCommand command = cmdType.newInstance();
if(command != null)
command.execute();
}

关于相当于 typeof(SomeClass) 的 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6180662/

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