有没有更简洁的方法来编写这个Java代码?

Bra*_*ike 6 java null

foo是由返回lookup可能null.

这就是为什么我试图避免调用foo.getFooStr()null的第一返回值null是否foonull.

但是有更好(更简洁)的方式来写这个吗?

public static String getFooStr(String input)
{
    Foo foo = lookup(input);
    if(foo==null)
    {
        return null;
    }
    return foo.getFooStr();
}
Run Code Online (Sandbox Code Playgroud)

Hov*_*els 34

您有两个问题:是否有更好的编写代码的方法,并且有更简洁的方法来编写代码.

关于更简洁,这可能有效:

public static String getFooStr(String input) {
    Foo foo = lookup(input);          
    return foo == null ? null : foo.getFooStr();
}
Run Code Online (Sandbox Code Playgroud)

关于更好:我认为可读性在任何一天都很简洁,而且很大.您的原始代码对我来说很好.重要的是你看起来很好,从现在起3个月内你更容易理解和调试.我听过有人说得最好 - 编写代码,以便其他人可以轻松理解,更重要的是,你的未来自我.

  • +1恕我直言的代码是好的,只要它仍然清晰,这是.顺便说一句,我删除了括号噪音(即`foo == null`而不是`(foo == null)`)以获得更好的可读性 - 希望你不介意. (6认同)
  • @Bohem:HFOE说得很好,重要的是......你更容易理解和调试......所以其他人很容易理解.您删除的"支架噪音"可能只是我们这些知道C类操作员语法几乎是母语的人的噪音; 对于经验不足的人(更多的人,但可能不是你的观众),括号使它更具可读性,因为他们不必知道`?:`的优先级是否高于`==`.我并不是说你去除了parens是错的,但它们不是噪音,而且我更有可能让它们进入. (5认同)

Dan*_*ite 6

为什么没有lookup返回适当的foo字符串?