亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

BuildConfigField 決定如何定義成員(枚舉)

BuildConfigField 決定如何定義成員(枚舉)

開心每一天1111 2023-06-14 16:02:50
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;        }    }    ....}但它不起作用。有沒有可能做我想做的事?如果是,那么如何?
查看完整描述

2 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

您不能只if在類定義中編寫語句。

Java 中沒有 ifdef 和 ifndef。

您可以做的是為每個產品風格創建 java 代碼文件夾,然后在每個文件夾中正確創建枚舉定義。

示例:
app/src/debug/java/my/package/MyEnum.java
app/src/beta/java/my/package/MyEnum.java

然后,當您構建 debug 時,它將使用 debug 版本,如果您構建 beta,它將使用 beta 版本。


查看完整回答
反對 回復 2023-06-14
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

在這種情況下BuildConfig.SHORT_ENUM是一個boolean.

只需使用

if (BuildConfig.SHORT_ENUM){
  ...
}

無論如何,您不能以這種方式進行。這取決于您想如何使用它們。你有很多選擇:

  • 您可以在不同的 buildTypes 中使用 2 個不同的類。

  • 只需創建一個方法,該方法將根據條件返回值


查看完整回答
反對 回復 2023-06-14
  • 2 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號