Gradle buildConfigField: Syntax for arrays & maps?

Fahim :

The android gradle documentation says about buildConfigField:

void buildConfigField(String type, String name, String value)

Adds a new field to the generated BuildConfig class. The field is generated as: type name = value;

This means each of these must have valid Java content. If the type is a String, then the value should include quotes.

I can't find any information about the syntax of buildConfigField values for Arrays, Arraylist or a HashMap? Since they are compiled into java code usually everything should be possible.

Does anyone has some examples or documentation?

Anurag Singh :

For array

app.gradle

        buildConfigField "String[]", "URL_ARRAY",
        "{" +
        "\"http:someurl\"," +
        "\"http:someurl\"," +
        "\"http:someurl\"" +
        "}"

For Map

        buildConfigField "java.util.Map<String, String>", "NAME_MAP", 
                 "new java.util.HashMap<String, " +
                 "String>() {{ put(\"name\", \"John\"); put(\"name1\",  \"John\"); put(\"name2\", " +
                "\"John\"); }}"

Access in code:

HashMap<String, String> name = (HashMap<String, String>) BuildConfig.NAME_MAP;

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=449196&siteId=1