java - 在类类型中使用变量
问题描述
我对这一切应该如何运作感到有些困惑。我正在尝试创建一个对象,该对象可以具有无限的字段,所有字段都具有不同的/动态类型(所以我事先不知道它们是哪些类型)。
我有一个头等舱ConditionParamField<T>
,我觉得这个还可以。它表示将存储在文件中的键:值
public class ConditionParamField<T> {
private final String name;
private final T value;
public ConditionParamField(String name, T value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public T getValue() {
return value;
}
}
然后我有ConditionRule
。它Rule
从 jeasy 包扩展而来。主要思想只是有一个 key:type 的映射,它将告诉我们需要什么键以及它们的类型应该是什么。我的想法是,<?>
here 将填写 where T
is in the class before ( ConditionParamField<T>
)
public interface ConditionRule extends Rule {
/**
* Request values that need to be filled in by the user
*/
HashMap<String, Class<?>> getNeededValues();
}
这两个组合在一个简单的管理器类中。我的想法是映射所需的字段并创建我的ConditionParamField
实例:
ArrayList<ConditionParamField<?>> conditionParamFields = new ArrayList<>();
HashMap<String, Class<?>> neededValues = conditionRule.getNeededValues();
for (String field : neededValues.keySet()) {
Class<?> clazz = neededValues.get(field).getClass();
ConditionParamField<clazz> conditionParamField = new ConditionParamField<>(field, null);
}
我显然做错了什么,但我不知道是什么。我对泛型或任何 <?> 都不是很熟悉。我希望你能理解我试图达到的目标。
这里的主要问题是我收到一个错误“Class clazz unknown” ConditionParamField<clazz>
。似乎他没有接受变量,或者这根本不可能,我不确定。
我的最终主要目标是向用户显示一个只接受该字段的任何类型的输入(整数,字符串,...)
解决方案
推荐阅读
- html - 使用 url 链接快速创建无序列表的工具
- docker - 在 docker 容器内禁用/启用互联网
- mongodb - 检查坐标是否为 Double
- amazon-web-services - Amazon S3 验证预签名 URL
- python - 试图找到一个命令,以便我可以从更大的字符串中获取字符串(例如名称)
- azure - 如何在 Azure 认知搜索中搜索复杂字段
- excel - Excel 更新历史
- python - 如何从 keras 调谐器中的 RandomSearch 中选择试用版?
- phpstorm - PhpStorm 编辑器问题
- firebase - firebase 云函数 context.auth 字段是否适用于 firestore?