如果我有一系列的方法调用,每个用于下一次调用的值,我应该将它们存储在局部变量中,如下所示:
DynamicForm filledForm = Form.form().bindFromRequest();
String shareIdStr = filledForm.get("data[shareId]");
UUID shareId = UUID.fromString(shareIdStr);
Share share = Share.find.byId(shareId);
或作为单个调用链,如下所示:
Share share = Share.find.byId(UUID.fromString(Form.form().bindFromRequest().get("data[shareId]")));
在这种情况下,唯一再次使用的值是share
。也许答案介于两者之间,或者是完全不同的东西。你有什么看法?
答案 0 :(得分:8)
不链接方法:
ADV
增强可读性。
提供重新使用的机会。
引脚异常(如果有)变得更容易。
调试变得更容易,即在特定调用上设置断点很容易。
DisADV
增加代码的长度(我不会说大小:))。
IDE警告(如果有)。
链接方法
ADV
减少创建多个临时的需要。变量
减少要写入的行数。
DisADV
降低代码的可读性。
对于所谓的特定方法,评论变得很困难(如果有的话)。
调试整个调用链变得非常困难。
答案 1 :(得分:2)
第一种方法仅在稍后在方法中重用这些变量时才有用。如果没有,Eclipse会告诉你它们没有被使用。所以第二种方式更好,我想。
为了澄清一长串代码,我喜欢这样写:
Share share = Share.find
.byId(UUID.fromString(Form.form()
.bindFromRequest()
.get("data[shareId]")
)
);
答案 2 :(得分:1)
如果您认为不会重复使用变量,则只能比较这两种形式。否则,比较它们是没有意义的。
通常,第一个变体为您的代码提供了更多的可读性,并且可能使其更易于维护。
我个人为嵌入式系统开发了很多东西,其中目标平台对计算能力和大小有很大的限制。因此,我通常内联代码,以便我的字节码更小。
如果我要开发一个在功能强大的服务器上运行的应用程序,甚至是常规PC,那么我很可能会选择变体。
答案 3 :(得分:0)
取决于您希望如何阅读代码。如果要再次使用局部变量,则局部变量很有用。否则继续进行链调用。