如何在java中转换为CRTP?

2024-02-09

我有一个非常简单的案例,我做了一些基本的通用分配:

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 (...)
.....

but the Enum.valueOf() http://download.oracle.com/javase/6/docs/api/java/lang/Enum.html#valueOf%28java.lang.Class,%20java.lang.String%29调用起来有点困难,就我而言,错误是:

java.lang.Enum 中的 valueOf(java.lang.Class,java.lang.String) 不能应用于 (java.lang.Class,java.lang.String)

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


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

...
setValue( contract, field, Enum.valueOf( type.asSubclass( Enum.class ), example ) );
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在java中转换为CRTP? 的相关文章

随机推荐

  • Laravel Eloquent:如何将 whereDate 与 Between 一起使用?

    我正在使用 Laravel 5 5 我需要形成一个查询 其中仅应匹配日期时间列的日期部分 相当于date date col 2018 01 01 之类的事情 我如何以雄辩的方式实现这一目标 WhereDate 返回日期部分 但有什么方法可以
  • Java 8:从列表中查找最小值的索引

    假设我有一个包含元素的列表 34 11 98 56 43 使用 Java 8 流 如何找到列表中最小元素的索引 例如本例中为 1 我知道这可以在 Java 中轻松完成list indexOf Collections min list 然而
  • Swift UI 被高频 @StateObject 更新淹没了吗?

    Scenario 一个简单的 SwiftUIApp由一个TabView有两个选项卡 这App结构体有一个 StateObject属性 该属性正在重复且非常快速地 每秒 30 次 更新simulateFastStateUpdate 在这个例子
  • WinForms Tab控件问题

    我有一个以两种模式显示的表单 切换模式完全改变了表单的外观 就像您使用选项卡控件并且每个选项卡上的控件布局不同一样 如果我可以隐藏选项卡本身 选项卡控件将是完美的 当然 我可以使用两个面板并以编程方式显示和隐藏适当的面板 我尝试了这个 但我
  • 在 log4j xml 配置中使用系统环境变量

    是否可以在 log4j xml 配置文件中引用系统环境变量 而不是 Java 系统属性 我希望能够做类似的事情
  • Debian sid下RStudio安装失败:libgstreamer依赖问题

    我使用 Debian sid amd64 每周滚动更新一次 我最近从他们的官方网站下载了 RStudio 的桌面版本 0 99 902 并发布 当然 以 root 身份 dpkg i rstudio 0 99 902 amd64 deb 无
  • Web Scraper:限制单个域上每分钟/小时的请求数?

    我正在与一位图书管理员合作 重新构建其组织的数字摄影档案 我用Python构建了一个机器人机械化 http wwwsearch sourceforge net mechanize and 美丽汤 http www crummy com so
  • NSCoder vs NSDictionary,什么时候用什么?

    我想弄清楚如何决定何时使用 NSDictionary 或 NSCoder NSCoding 似乎对于一般属性列表等 NSDictionary 是生成可在应用程序外部轻松编辑的 XML 文件的简单方法 当处理保存数据的自定义类或可能嵌套在其中
  • ServiceId.UniqueId 最大长度和格式

    Every Item http msdn microsoft com en us library microsoft exchange webservices data item 28v exchg 80 29 aspx e g Task
  • 设置内容视图不起作用

    button setOnClickListener new View OnClickListener public void onClick View v setContentView R layout activity chart 您好
  • Android NDK 中的调试与发布构建

    我正在开发一个必须移植到 Android 的大型游戏引擎 所有代码都是 C C 因此我们通过 NDK 进行移植 我已经构建了所有内容 但经过大量搜索后 我仍然不确定构建 so 文件的调试版本与发布版本的最佳方法是什么 每次都用手改变东西已经
  • 如何在张量流中将 2d 张量与 3d 张量相乘?

    In numpy您可以将 2d 数组与 3d 数组相乘 如下例所示 gt gt gt X np random randn 3 5 4 3 5 4 W np random randn 5 5 5 5 out np matmul W X 3 5
  • Objective-C 在 dealloc 中保留计数

    我在这里看到一些相当奇怪的东西 我在不同的地方设置了断点dealloc我的应用程序中的方法 并在检查时 对象的保留计数self从 1 到 0 变化 当dealloc被调用时 对象的保留计数是否已被设置为0 我在用着print int sel
  • 找到control m字符并将其删除

    是否有任何单行命令可以递归地查找所有目录中的 ctl 文件并从中删除 control m 字符 Use find with sed 使用 GNU sed find name ctl type f exec sed i s M 对于 BSD
  • 到达代码,不执行并无错误退出

    到目前为止 我的所有代码都运行良好 using System Diagnostics namespace WebPortalLogging public static class EventLogging public static voi
  • 通过 HttpURLConnection 发送 UTF-8 字符失败

    我已经花了半个星期天的时间来解决这个问题 现在我需要帮助 我想使用 Java HttpURLConnection 将包含特殊字符 UTF 8 编码的字符串发送到服务器 字符的正确编码失败 Example strToSend strUrlEn
  • Laravel 全文搜索

    我正在尝试对数据库实施全文搜索查询 这是我的客户发给我的规范 The free text search limits the result of the data table to records with a matching first
  • C# 中的线程安全属性

    我正在尝试在 C 中创建线程安全属性 并且我想确保我处于正确的路径上 这是我所做的 private readonly object AvgBuyPriceLocker new object private double AvgBuyPric
  • JavaFX 中的动态/即时调整大小

    如何创建一个 立即 动态调整大小的 JavaFX 应用程序 现在 我已经编写了一个简单的应用程序 可以动态调整大小 但布局更改只有在拖动鼠标按钮后才会显示 我希望在此按钮释放之前立即看到结果 布局更改 我假设这是通过将正确的值 控件与反向绑
  • 如何在java中转换为CRTP?

    我有一个非常简单的案例 我做了一些基本的通用分配 final Detail detail field getAnnotation Detail class final String example detail example final