mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-09-03 04:26:12 +08:00
Polish default value for arrays
See gh-1996
This commit is contained in:
parent
f821fdfffa
commit
509201907c
@ -144,8 +144,9 @@ The JSON object contained in the `properties` array can contain the following at
|
||||
|
||||
|`defaultValue`
|
||||
| Object
|
||||
| The default value which will be used if the property is not specified. May be omitted
|
||||
if the default value is not known.
|
||||
| The default value which will be used if the property is not specified. Can also be an
|
||||
array of value(s) if the type of the property is an array. May be omitted if the default
|
||||
value is not known.
|
||||
|
||||
|`deprecated`
|
||||
| boolean
|
||||
|
@ -124,7 +124,11 @@ public class JavaCompilerFieldValuesParser implements FieldValuesParser {
|
||||
if (arrayValues != null) {
|
||||
Object[] result = new Object[arrayValues.size()];
|
||||
for (int i = 0; i < arrayValues.size(); i++) {
|
||||
result[i] = getValue(arrayValues.get(i), null);
|
||||
Object value = getValue(arrayValues.get(i), null);
|
||||
if (value == null) { // One of the elements could not be resolved
|
||||
return defaultValue;
|
||||
}
|
||||
result[i] = value;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -84,6 +84,7 @@ public abstract class AbstractFieldValuesProcessorTests {
|
||||
assertThat(values.get("stringArrayConst"), equalToObject(new Object[]{"OK", "KO"}));
|
||||
assertThat(values.get("stringArrayConstElements"), equalToObject(new Object[] {"c"}));
|
||||
assertThat(values.get("integerArray"), equalToObject(new Object[] {42, 24}));
|
||||
assertThat(values.get("unknownArray"), nullValue());
|
||||
}
|
||||
|
||||
private Matcher<Object> equalToObject(Object object) {
|
||||
|
@ -90,4 +90,6 @@ public class FieldValues {
|
||||
|
||||
private Integer[] integerArray = new Integer[] {42, 24};
|
||||
|
||||
private FieldValues[] unknownArray = new FieldValues[] {new FieldValues()};
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user