14

Android Studio とGradleBuildConfigプラグインによって生成されたクラスを見ると、ブール値リテラルまたは.BuildConfig.DEBUGBoolean.parseBoolean(String)truefalse

Gradle を使用してカスタム ビルド プロパティを追加するときは、次のようにします。

android {
    buildTypes.debug.buildConfigField 'boolean', 'SOME_SETTING', 'true'
}

しかし、生成されたものを見ると、 Google がフラグBuildConfigに対して別のアプローチを取っていることがわかります。DEBUG

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");

  // more fields here

  // Fields from build type: debug
  public static final boolean SOME_SETTING = true;
}

Boolean.parseBoolean(String)リテラルの代わりに使用する利点は何ですか?

4

2 に答える 2

26

クラス内のブール値リテラルをBuildConfigコードで使用すると (少なくとも Android Studio 内で)、IDE 警告が生成されます。たとえば、ブール式で使用する場合、Android Studio は (誤って) ブール式を単純化することを推奨します。これは、定数値が常に同じであるためです (現在のビルド バリアントの場合)。

ビルド構成の知識がないため、Android Studio がコードの警告を生成する

BuildConfig.SOME_SETTINGこの警告は、内部の最終的な値が他のビルド バリアントと異なる可能性があることを Android Studio が認識していないためです。

コードをクリーンで警告のない状態に保つには、次のような IDE コメントを追加して、この特定の警告を無視するよう Android Studio に指示します。

コード コメントを追加して IDE の警告を無視する

しかし、これもコードに多少のノイズを追加し、可読性を低下させます。このメソッドを使用しBoolean.parseBoolean(String)て定数フィールドを初期化すると、Android Studio が実際にだまされ、ブール式を完全に分析できなくなり、警告が生成されなくなります。

parseBoolean(String) を使用して IDE の警告を回避する

このアプローチは、重要なコード分析と警告の生成をオフにすることなく、コードをクリーンで読みやすい状態に保つため、非常に便利です。

于 2015-04-27T06:56:20.457 に答える