Eclipse-提取具有类似变量名的常量时的错误建议

时间:2018-08-30 03:02:49

标签: java eclipse constants

我在Java代码中使用Eclipse Neon,

当我想在具有变量名称的同时提取常量例如字符串值"subject"时:

String subject = "subject";

尽管我没有SUBJECT2常量,但在Eclipse提取时却给了我SUBJECT。它似乎受现有变量名称的影响。

我可以指示Eclipse建议我SUBJECT,因为它是独一无二的吗?

我没有发现这样的问题,可以将此错误报告为日食吗?

编辑

从以下内容中提取"subject"时,建议SUBJECT

p.put("subject", "mySubject");

(不同的代码)从下面提取"subject"时,建议SUBJECT2

String subject = null;
p.put("subject", "mySubject");

编辑2

即使在主题变量不是 有效地是时,只要在@howlger注释中添加,它仍建议SUBJECT2

String subject = null;
p.put("subject", "mySubject");
subject = "notFinal";

1 个答案:

答案 0 :(得分:1)

Eclipse为常量建议一个唯一名称,该常量不等于忽略大小写其他常量,而且忽略其他变量,参数和字段。这样做是出于代码约定的原因,不仅是为了避免编译器错误

在给定的示例String subject = "subject";中,有两种情况:

  • 如果subject隐式最后一个,请在提取“主题”为常量之前先内联subject
  • 如果subject不是最终不是隐含的,因为稍后会分配一个不同的值:提取的常数的名称应更具体(例如{ 1}}) 更通用的变量的名称。

在这种情况下,我喜欢Eclipse在名称后添加后缀的事实。但是在我看来,在其他情况下,可以提出更好的建议(不幸的是,这也意味着更多的复杂性)。这是一个示例,其中根据提取为常量的位置提出了不同的建议:

SUBJECT_DEFAULT

该问题已经报告给Eclipse(further improvements can be reported to Eclipse JDT, to the component UI here):