...
Boolean toKillYourself = true;
if (RestContext.request.params.get('toKillYourself') != null) {
String toKillYourselfString = RestContext.request.params.get('toKillYourself');
if (String.isNotBlank(toKillYourselfString) && (toKillYourselfString.length() == 4 || toKillYourselfString.length() == 5)) {
toPullDeleted = Boolean.valueOf(toKillYourselfString);
} else {
// 'Wrong format of toKillYourself parameter ('+toKillYourselfString+')');
return null;
}
}
if (toKillYourself) {
...
Только сегодня узнал, что
Converts the specified string to a Boolean value and returns true if the specified string value is true. Otherwise, returns false.
В параметр сервиса передавалась единичка (1), и сервис, почему-то, не правильно работал :-)
[code]... Boolean toKillYourself = true; if (RestContext.request.params.get('toKillYourself') != null) { String toKillYourselfString = RestContext.request.params.get('toKillYourself'); if (String.isNotBlank(toKillYourselfString) && (toKillYourselfString.length() == 4 || toKillYourselfString.length() == 5)) { toPullDeleted = Boolean.valueOf(toKillYourselfString); } else { // 'Wrong format of toKillYourself parameter ('+toKillYourselfString+')'); return null; } } if (toKillYourself) { ...[/code] Как вам мой код в сервисе? :-) Только сегодня узнал, что [quote][b]Boolean.valueOf(String)[/b] Converts the specified string to a Boolean value and returns true if the specified string value is true. Otherwise, returns false.[/quote] В параметр сервиса передавалась единичка (1), и сервис, почему-то, не правильно работал :-)
Что-то монструозно все выглядит.
Зачем столько проверок?
Что-то монструозно все выглядит. Зачем столько проверок?
А как бы ты написал?
[quote="Dmitry Shnyrev"]Что-то монструозно все выглядит. Зачем столько проверок?[/quote] А как бы ты написал?
toPullDeleted = Boolean.valueOf(RestContext.request.params.get('toKillYourself'));
[code]toPullDeleted = Boolean.valueOf(RestContext.request.params.get('toKillYourself'));[/code]
Можно запостить на http://govnokod.ru/
[quote="Chiz"](toKillYourselfString.length() == 4 || toKillYourselfString.length() == 5)[/quote] Можно запостить на http://govnokod.ru/
Это оттуда взято ;-)
Сам ржал, что по другому никак не обойтись.
[quote="Gres"][quote="Chiz"](toKillYourselfString.length() == 4 || toKillYourselfString.length() == 5)[/quote] Можно запостить на http://govnokod.ru/[/quote] Это оттуда взято ;-) Сам ржал, что по другому никак не обойтись.
toPullDeleted = Boolean.valueOf(RestContext.request.params.get('toKillYourself'));
Именно так и было, до сегодня. Выяснилось, что можно передать 1 и СФ схавает это как false. И никто об этом знать не будет - не подходит.
[quote="Dmitry Shnyrev"][code]toPullDeleted = Boolean.valueOf(RestContext.request.params.get('toKillYourself'));[/code][/quote] Именно так и было, до сегодня. Выяснилось, что можно передать 1 и СФ схавает это как false. И никто об этом знать не будет - не подходит.
то оттуда взято ;-)
Не стоит так делать)
Именно так и было, до сегодня. Выяснилось, что можно передать 1 и СФ схавает это как false. И никто об этом знать не будет - не подходит.
Еще какая-то кастомная логика предполагается?
[quote="Chiz"]то оттуда взято ;-) [/quote] Не стоит так делать) [quote="Chiz"]Именно так и было, до сегодня. Выяснилось, что можно передать 1 и СФ схавает это как false. И никто об этом знать не будет - не подходит.[/quote] Еще какая-то кастомная логика предполагается?
Еще какая-то кастомная логика предполагается?
Хотя, я вот теперь думаю, сделать свой Boolean.valueOf(), чтоб небыло таких приколов.
[quote="Gres"]Еще какая-то кастомная логика предполагается?[/quote]С toKillYourself? Не, только один раз используется. Хотя, я вот теперь думаю, сделать свой Boolean.valueOf(), чтоб небыло таких приколов.
ну а чем не правильно что "1" это false? Не вижу тут криминала. Или у вас там может приходить 1 как true?
Если так то можно еще проще сделать
toPullDeleted = (RestContext.request.params.get('toKillYourself')=='true' || RestContext.request.params.get('toKillYourself')=='1')
как собственно и первый вариант переписать
toPullDeleted = RestContext.request.params.get('toKillYourself') == 'true'
ну а чем не правильно что "1" это false? Не вижу тут криминала. Или у вас там может приходить 1 как true? Если так то можно еще проще сделать [code]toPullDeleted = (RestContext.request.params.get('toKillYourself')=='true' || RestContext.request.params.get('toKillYourself')=='1')[/code] как собственно и первый вариант переписать [code]toPullDeleted = RestContext.request.params.get('toKillYourself') == 'true'[/code]
Что-то совсем твой пример мозг взорвал.
Это ж простая задача - определить пришел ли нужный параметр.
Всегда одной строчкой кода решался. и без всяких Boolean.valueOf()
Что-то совсем твой пример мозг взорвал. Это ж простая задача - определить пришел ли нужный параметр. Всегда одной строчкой кода решался. и без всяких Boolean.valueOf()
Сделай мапу
Map<String, Boolean> stringToBooleanMap = new Map<String, Boolean>{
'true' => true,
'1' => true,
'false' => false,
'0' => false
}
String toPullDeletedString = RestContext.request.params.get('toKillYourself');
Boolean toPullDeleted = toPullDeletedString != null && stringToBooleanMap.contains(toPullDeletedString.toLowerCase()) ? stringToBooleanMap.get(toPullDeletedString.toLowerCase()) : false;
Сделай мапу [code] Map<String, Boolean> stringToBooleanMap = new Map<String, Boolean>{ 'true' => true, '1' => true, 'false' => false, '0' => false } String toPullDeletedString = RestContext.request.params.get('toKillYourself'); Boolean toPullDeleted = toPullDeletedString != null && stringToBooleanMap.contains(toPullDeletedString.toLowerCase()) ? stringToBooleanMap.get(toPullDeletedString.toLowerCase()) : false; [/code]
ну а чем не правильно что "1" это false? Не вижу тут криминала. Или у вас там может приходить 1 как true?
Если так то можно еще проще сделать
toPullDeleted = (RestContext.request.params.get('toKillYourself')=='true' || RestContext.request.params.get('toKillYourself')=='1')
как собственно и первый вариант переписать
toPullDeleted = RestContext.request.params.get('toKillYourself') == 'true'
[quote="Dmitry Shnyrev"]ну а чем не правильно что "1" это false? Не вижу тут криминала. Или у вас там может приходить 1 как true? Если так то можно еще проще сделать [code]toPullDeleted = (RestContext.request.params.get('toKillYourself')=='true' || RestContext.request.params.get('toKillYourself')=='1')[/code] как собственно и первый вариант переписать [code]toPullDeleted = RestContext.request.params.get('toKillYourself') == 'true'[/code][/quote] По правилас СФ - все правильно. Только вот iOS думала, что 1 == тру.
Что-то совсем твой пример мозг взорвал.
Это ж простая задача - определить пришел ли нужный параметр.
Всегда одной строчкой кода решался. и без всяких Boolean.valueOf()
Я думал, что если приходит 'true' или 'false', то все нормально, а если что-то другое, то вывалится с ошибкой.
[quote="Dmitry Shnyrev"]Что-то совсем твой пример мозг взорвал. Это ж простая задача - определить пришел ли нужный параметр. Всегда одной строчкой кода решался. и без всяких Boolean.valueOf()[/quote] Я думал, что если приходит 'true' или 'false', то все нормально, а если что-то другое, то вывалится с ошибкой.
ну все у меня вообще мозг в осадок выпал При чем здесь iOS.
:D ну все у меня вообще мозг в осадок выпал :D При чем здесь iOS.
:D ну все у меня вообще мозг в осадок выпал При чем здесь iOS.
[quote="Dmitry Shnyrev"]:D ну все у меня вообще мозг в осадок выпал :D При чем здесь iOS.[/quote]Он присылает 1 вместо true
Что для сервиса критично - получить правильный true параметр? Если да, то пусть все возможные варианты, означающие true обрабатываются в условии, а всё остальное будет false, например:
String toKillYourselfString = RestContext.request.params.get('toKillYourself');
Boolean toKillYourself = (toKillYourselfString == '1' || toKillYourselfString == 'true');
Что для сервиса критично - получить правильный true параметр? Если да, то пусть все возможные варианты, означающие true обрабатываются в условии, а всё остальное будет false, например: [code] String toKillYourselfString = RestContext.request.params.get('toKillYourself'); Boolean toKillYourself = (toKillYourselfString == '1' || toKillYourselfString == 'true');[/code]
Что для сервиса критично - получить правильный true параметр? Если да, то пусть все возможные варианты, означающие true обрабатываются в условии, а всё остальное будет false, например:
String toKillYourselfString = RestContext.request.params.get('toKillYourself');
Boolean toKillYourself = (toKillYourselfString == '1' || toKillYourselfString == 'true');
Да, именно так я и решил сделать и не заморачиваться с конвертацией в Boolean.
[quote="ilya leshchuk"]Что для сервиса критично - получить правильный true параметр? Если да, то пусть все возможные варианты, означающие true обрабатываются в условии, а всё остальное будет false, например: [code] String toKillYourselfString = RestContext.request.params.get('toKillYourself'); Boolean toKillYourself = (toKillYourselfString == '1' || toKillYourselfString == 'true');[/code][/quote] Да, именно так я и решил сделать и не заморачиваться с конвертацией в Boolean.