用三元避免违反DRY?

Eth*_*n Z 2 java dry ternary-operator

这就是我所拥有的。

Map data = new HashMap<>(); // assume this has been populated

public int getLastestVersion() {
    // data.get("PATH_TO_DESIRED_POINT") would be an integer
    return data.get("PATH_TO_DESIRED_POINT") == null ? 0 : (int)data.get("PATH_TO_DESIRED_POINT");
}
Run Code Online (Sandbox Code Playgroud)

我试图避免违反 DRY,但我希望能够保持三元的简单性。有什么我可以做的吗?

nta*_*lbs 5

如果您使用的是 Java8,则可以使用getOrDefault方法:

return data.getOrDefault("PATH_TO_DESIRED_POINT", 0);
Run Code Online (Sandbox Code Playgroud)

  • 这可能导致 `null` :D (3认同)