У меня есть фрагмент кода, который выглядит следующим образом: "
public enum MyEnum {
EXAMPLE("example1", false, -1L);
private final String name;
private final boolean deprecated;
private final long id;
...
}
...
MyEnum myenum = MyEnum.EXAMPLE;
try {
params.put("myenum", myenum);
JSONArray paramArray = new JSONArray();
paramArray.put(0, params);
JSONObject request = new JSONObject();
request.put("params", paramArray);
log.info(request.toString());
} catch (JSONException e) {
e.printStackTrace();
}
Если я запускаю этот код напрямую с java -cp Bla Main.Class, я получаю ожидаемый результат:
{"params":[{"myenum":"example1"}]}
Однако, когда я встраиваю это в супер-флягу с Gradle, я получаю:
{"params":[{"myenum":"EXAMPLE"}]}
Так что, кажется, происходит некоторое колдовство с classpath и конкурирующими версиями org. json В первом случае toString перечисления применяется правильно, во втором случае перечисление использует метод toString по умолчанию.
Кто-нибудь знает, как это отладить?