メンバーを定義する方法を決定するBuildConfigField(列挙型)

ゆっくりShmiel:

build.gradle(モジュール):

productFlavors {
    mytest {
        ...
        buildConfigField "boolean", "SHORT_ENUM", "false"
    }
    mysecondtest {
        buildConfigField "boolean", "SHORT_ENUM", "true"
    }

MyClassのでは私はbuildConfigField私が定義したに応じて、ビルド時に列挙型メンバーを定義します:

public class MyClass {
    // members initialization
    public enum MYENUM {
        if (BuildConfig.SHORT_ENUM) {
            FIRST(0),
            SECOND(1);
        }
        else { // SHORT_ENUM is false
            FIRST(0),
            SECOND(1),
            THIRD(2),
            FORTH(3);
        }
        private int value;
        MYENUM(int v) {
            value = v;
        }
    }
    ....
}

しかし、それは動作しません。それは私がやりたいものを行うことが可能ですか?yesの場合、どのように?

Moonbloom:

あなただけの書き込みができないifクラス定義でのステートメントを。

ジャワにはIFDEFとIFNDEFはありません。

あなたにできることは、製品の味のそれぞれのJavaコードのフォルダを作成し、正確にこれらのフォルダのそれぞれに列挙型定義を作成することです。

例:
アプリ/ srcに/デバッグ/ Javaの/私/パッケージ/ MyEnum.java
アプリ/ SRC /ベータ/ javaの/私/パッケージ/ MyEnum.java

次に、デバッグをビルドするとき、それはデバッグバージョンを使用すると、あなたはベータ版をビルドする場合、それはベータ版を使用します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=281676&siteId=1