动态布尔表达式变量和布尔函数的区别

Difference between dynamic boolean expression variable and boolean function

我遇到了一个疑问:这两种获取布尔值的方式有什么区别?最终结果是一样的,但是使用其中一种的优缺点是什么?最常用的方法是什么?这种编码风格的最佳实践是什么?
动态布尔表达式变量

...
public class MainActivity extends AppCompatActivity {
    private boolean isVersionM = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
    ....
    private void onCreate(Bundle savedInstanceState) {
        ....
        if (isVersionM) {
            ...
        }
        else {
            ...
        }
        ...
    }
    ....
}

布尔函数

...
public class MainActivity extends AppCompatActivity {
    ....
    private void onCreate(Bundle savedInstanceState) {
        ....
        if (isVersionM()) {
            ...
        }
        else {
            ...
        }
        ...
    }
    ...
    private boolean isVersionM() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
    }
    ...
}

这是做一件事的两种方法。但是如果你有一些 运行 时间值要计算,那么你将需要第二种方法。

What is the best practice of this coding style

Second,因为您不需要像下面的方法那样为 运行 时间计算方法更改样式。

private boolean isUserLoggedIn() {
    return PreferenceManager.getString("token") != null;
}