【问题标题】:tools to generator field constant string in java? [closed]java中生成字段常量字符串的工具? [关闭]
【发布时间】: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


【解决方案1】:

在 IntelliJ 中,我可以建议一些与您所要求的不完全一致的东西,但它很接近。

获取以下代码示例,其中包含字符串 "dealId"

public static void main(String[] args) {
    System.out.println("dealId");
}

将光标放在"dealId" 上并按Ctrl - Alt - C(重构:创建常量)。

IntelliJ 会弹出一个对话框,然后为您创建以下内容:

    public static final String DEAL_ID = "dealId";

您还可以选择“替换所有出现”和“移至另一个类”。

【讨论】:

    猜你喜欢
    • 2018-03-24
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 2021-12-26
    • 2011-12-10
    • 2020-12-11
    相关资源
    最近更新 更多