【发布时间】:2015-12-11 06:46:25
【问题描述】:
我需要一个 Eclipse 或 IDEA 插件来在 java 中生成字段名称常量字符串。比如在ORM中我们经常定义一个类是这样的:
class DealDB {
public String dealId;
}
我们可以用eclipse或者IDEA生成get和set方法,但是不能生成字段名常量字符串。我们在java中写查询代码的时候,经常需要这个常量字符串。
class DealDB {
public String dealId;
// to generate this
public static final String FIELD_DEALID="dealId";
}
也许扩展 lombok (https://projectlombok.org/) 可以实现这一点。
【问题讨论】:
-
您可以为此定义自己的模板,至少在 Eclipse 中是这样。
-
我强烈反对你使用这样的常量。这将使您的代码更难阅读。示例:“
select d from Deal d where d.dealId = :dealId"比"select d from Deal d where d." + Deal.FIELD_DEALID + " = :dealId"清晰得多。而且您使用此类常量的次数越多,情况就越糟糕。使用单元测试来确保您的查询是正确的,并做正确的事情。 -
@JBNizet 我们使用morphia查询mongodb,我们经常写
Query<DealDB> query = datastore.createQuery(DealDB.class); query.field("created").greaterThanOrEq(12345);这样的代码,所以将“created”替换为const字段字符串后,我们可以更有效地编写代码,并且可以轻松搜索哪个代码使用此字段。 -
虽然它可能允许您使用 IDE 工具来查找用途等,但这并不是一个好计划。适当的设计将确保您不需要搜索用途,因为所有访问都将在一个包中完成。
-
@FieldNameConstants - 这是完成这项工作的类级别 Lombok 查询。它将创建一个名为 Field 的类,并在其中生成字段名称作为常量。参考:projectlombok.org/features/experimental/FieldNameConstants
标签: java eclipse intellij-idea lombok