gpt4 book ai didi

java - 对对象分类器使用注解?

转载 作者:行者123 更新时间:2023-11-29 03:51:31 26 4
gpt4 key购买 nike

我正在使用一个容器来保存对象列表(属于同一类),这些对象具有使用自定义 RetentionSortable 注释的某些字段。注释的目的有两个:

  1. 将字段标记为能够与同一字段的另一个对象进行比较。
  2. 并给出字段的排序名称(例如修改日期或名字)。

然后容器将遍历对象列表(记住它们是相似的)并收集对象包含的 RententionSortable 列表并将列表传递给 GUI。 GUI 将显示列表并请求可排序的选择并将其返回给可排序的,然后可排序的将根据所选的 RetentionSortable 对列表进行排序。

这个方法或排序对象的目的是让我创建一个小容器,它可以通用地接受任何对象并对其进行排序,只要它至少有一个 RetentionSortable 字段即可。

我的直觉告诉我这是不好的做法,如此依赖反射(reflection)是个坏主意,但我的测试完美无缺,比我预期的要好。

是否使用注释反射来查找由特定注释注释的所有字段以进行抽象对象排序?

最佳答案

注解是为了方便,你的使用让情况更方便,所以看起来很合理。另一种方法是维护一个单独的字典,其中包含哪些字段可以针对哪些对象进行排序,这会稍微麻烦一些,但从关注点分离的角度来看稍微好一些。

真正的问题是您的对象是否应该知道注释(对象是否会在注释没有意义或冲突的另一种情况下被重用)。通过单独的可排序字段列表,您可以选择在任何给定情况下应用哪个字段。

如果方便权衡适合您,那么您应该坚持使用注释,只要您了解潜在的设计后果(对于您的特定情况可能没有任何影响)。

关于java - 对对象分类器使用注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8580596/

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