Eclipse 错误地格式化了带有 return 语句的方法

Posted

技术标签:

【中文标题】Eclipse 错误地格式化了带有 return 语句的方法【英文标题】:Eclipse badly formats a method with a return statement 【发布时间】:2018-01-18 00:17:24 【问题描述】:

如果我的方法包含单个语句...

if (some-condition) 
  return someObject.methodOne().methodTwo().methodThree().methodFour();

Eclipse 格式化“折叠”到...

if (some-condition) return someObject.methodOne().methodTwo().methodThree().methodFour();

但是,如果我的方法包含多个语句...

 if (some-condition) 
        int a = 42;
return something;

Eclipse 格式化将其清理并保留在多行中...

 if (some-condition) 
  int a = 42;
  return something;

如果我的方法只有一个返回语句,我仍然希望它占据多行。我从不希望它“折叠”成一行。

如何为我想要的行为配置 Eclipse 格式?我已经玩了很长一段时间的设置,但没有成功。

谢谢!

【问题讨论】:

你的方法不能只包含if (some-condition) return someObject.methodOne().methodTwo().methodThree().methodFour(); ,你有办法到达终点而不返回。你的意思是控制语句还是分支?这是什么语言? @nitind 抱歉,我忘了说明这是 Java。 是的,一个方法可以只包含一个return语句。这是一个简化的例子,展示了 specific 问题。顺便说一句,如果该方法仅包含“throw”语句——另一种常见模式,则 Eclipse 格式化程序会表现出相同的行为。 回到 Eclipse 格式化程序的问题……谢谢! 【参考方案1】:

您可以执行以下操作:

首先:转到Preferences > Java > Code Style > Formatter 并通过创建您自己的配置文件或使用默认配置文件来设置您想要的所有选项。

第二:通过给它一个新的配置文件名称来保存“自定义”首选项(将其导出以供将来恢复)

那你就可以用捷径试试了。也可以在这里看到这个有趣的答案Eclipse Code Formatter Plugin

【讨论】:

谢谢,但我已经花了很多时间来调整这些设置。找不到任何可以解决此特定情况的内容。如果您知道一些特定设置,那就太好了!【参考方案2】:

在 Formatter (Neon) 中找到控制此行为的设置:

控制语句 -> 'if else' -> 将“return”或“throw”子句保留在一行

【讨论】:

以上是关于Eclipse 错误地格式化了带有 return 语句的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 Eclipse 格式化程序弄乱带有文本符号的注释?

带有 java.lang.NullPointerException 消息的 Eclipse java 氧气错误

带有 MinGW GCC 的 Eclipse CDT 生成错误 127

带有 Cordova 默认应用程序 XML 错误的 Eclipse THyM

eclipse报错 :java was started but returned exit code=13

eclipse的小技巧