gpt4 book ai didi

java - 如何在 Java 中转换为 CRTP?

转载 作者:行者123 更新时间:2023-11-30 06:39:03 27 4
gpt4 key购买 nike

我有一个非常简单的案例,我做了一些基本的泛型赋值:

final Detail detail = field.getAnnotation(Detail.class);
final String example = detail.example();
final Class<?> type = field.getType();
if (List.class.isAssignableFrom(type))
...
else if (Enum.class.isAssignableFrom(type))
setValue(contract, field, Enum.valueOf(type, example));
else if (...)
.....

但是Enum.valueOf()有点难调用,就我而言,错误是:

valueOf(java.lang.Class,java.lang.String) in java.lang.Enum cannot be applied to (java.lang.Class,java.lang.String)

这很有意义,因为类型是 Class<Object> .但是因为 Enum是 CRTP,我找不到转换类型以使编译器满意的好方法。正在使用原始类型 Enum.valueOf((Class)type, example))唯一的答案?它给了我 2 个警告,而不是一个。

最佳答案

下面一行将只发出一个警告:

...
setValue( contract, field, Enum.valueOf( type.asSubclass( Enum.class ), example ) );
...

关于java - 如何在 Java 中转换为 CRTP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1458779/

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