我在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";
答案 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):