как известно есть такой славный метод sObject.get("API_name__с") который возвращает значение поля
String description = (String)acc.get("API_name__с");
более того, вся суть что его можно использовать с динамически полученными (например из Каст Сеттингов) АПИ именами
String description = (String)acc.get(customFieldAPIname);
вся проблема в том, что полученное значение нужно обязательно привести к какому-то определенному типу. Но тип то не известен заранее, если речь идет о динамически полученных и подставляемых в .get() API именах
я уже нписал код, как определять тип ну и далее делать кастинг, но решил спросить, может у вас уже есть отработанный метод лля данного случая.
спасибо
как известно есть такой славный метод sObject.get("API_name__с") который возвращает значение поля String description = [b](String)[/b]acc.get("API_name__с"); более того, вся суть что его можно использовать с динамически полученными (например из Каст Сеттингов) АПИ именами String description = [b](String[/b])acc.get(customFieldAPIname); вся проблема в том, что полученное значение нужно обязательно привести к какому-то определенному типу. Но тип то не известен заранее, если речь идет о динамически полученных и подставляемых в .get() API именах я уже нписал код, как определять тип ну и далее делать кастинг, но решил спросить, может у вас уже есть отработанный метод лля данного случая. спасибо
instanceof
instanceof
это понятно, просто там вилка на несколько строк получается из if -if else, думал, что может у вас более элегантное решение есть в две строки
[quote="Gres"]instanceof[/quote] это понятно, просто там вилка на несколько строк получается из if -if else, думал, что может у вас более элегантное решение есть в две строки
DescribeFieldResult, в нем есть тип филда. Но потребуется больше строк чем с instanceof. If-else полюбому придется использовать.
DescribeFieldResult, в нем есть тип филда. Но потребуется больше строк чем с instanceof. If-else полюбому придется использовать.
Для чего тебе его приводить к типу?
Если ты используешь поле в бизнес логике, то ты должен знать что это за поле и какой у него тип.
Во многих же случаях можно использовать конструкции типа String.valueOf() или продолжать работать с типом Object.
Можешь показать конкретный пример? Возможно его можно просто решить по другому.
Для чего тебе его приводить к типу? Если ты используешь поле в бизнес логике, то ты должен знать что это за поле и какой у него тип. Во многих же случаях можно использовать конструкции типа String.valueOf() или продолжать работать с типом Object. Можешь показать конкретный пример? Возможно его можно просто решить по другому.
вот это может быть универсальным решением.
вообщем там по очереди дергаются значения из "неизвестных" полей, после чего их значения идут в перегруженный метод, который принимает определенные типы и форматирует значения в кусок CSV. Но вот Object в него "присунуть" не получается, поэтому я сделал вилку с If-else и instanceof, в которой привожу значение к определенному типу.
вот так было бы совсем не плохо:
formatToCSV( String.valueOf( acc.get("API_name__с")) );
но еще вопрос, если String.valueOf() "проглотит" Object, я не вижу в его описании такого варианта...
[quote="Dmitry Shnyrev"]Во многих же случаях можно использовать конструкции типа String.valueOf() [/quote] вот это может быть универсальным решением. вообщем там по очереди дергаются значения из "неизвестных" полей, после чего их значения идут в перегруженный метод, который принимает определенные типы и форматирует значения в кусок CSV. Но вот Object в него "присунуть" не получается, поэтому я сделал вилку с If-else и instanceof, в которой привожу значение к определенному типу. вот так было бы совсем не плохо: [code]formatToCSV( String.valueOf( acc.get("API_name__с")) );[/code] но еще вопрос, если String.valueOf() "проглотит" Object, я не вижу в его описании такого варианта...
Я думаю valueOf в apex берет свое начало из java
поэтому вот эта информация я думаю будет актуальна
http://www.tutorialspoint.com/java/java_string_valueof.htm
А вообще я предполагаю что у Object дергается какой-нибудь метод toString() и если он реализовал у твоего объекта, то проблем не должно быть.
Я думаю valueOf в apex берет свое начало из java поэтому вот эта информация я думаю будет актуальна http://www.tutorialspoint.com/java/java_string_valueof.htm А вообще я предполагаю что у Object дергается какой-нибудь метод toString() и если он реализовал у твоего объекта, то проблем не должно быть.