salesforce 零基础学习(五十八)通过sObject的field返回其对应的基础类型
2016-12-23 09:55
381 查看
项目中有时候会要求通过sObject的Field的type类型返回其对应的基本类型,然后对其进行相关的处理,创建sObject的field可以选择的type类型是固定多的。
上述类型可以转换成几种基本类型:Boolean、Date、Datetime、Double、Integer、String、Time。
1.封装Primitive枚举类:封装基本类型
2.创建PrimitiveHelper帮助类:通过字段的DataType返回相关的基本类型
效果:
1.存在的相关字段的基本类型
2.不存在的字段的结果显示
总结:此篇用于通过sObject的字段来判断此字段属于哪种基本类型,然后可以通过的基本类型对其进行相关操作。有错误的地方欢迎留言。
上述类型可以转换成几种基本类型:Boolean、Date、Datetime、Double、Integer、String、Time。
1.封装Primitive枚举类:封装基本类型
1 public enum Primitive { 2 TYPE_BOOLEAN, 3 TYPE_DATE, 4 TYPE_DATETIME, 5 TYPE_DOUBLE, 6 TYPE_INTEGER, 7 TYPE_STRING, 8 TYPE_TIMEOFDAY, 9 TYPE_UNKNOW 10 }
2.创建PrimitiveHelper帮助类:通过字段的DataType返回相关的基本类型
1 public without sharing class PrimitiveHelper { 2 3 public static Primitive getPrimitiveTypeByField(String sObjectName,String fieldName) { 4 Schema.DisplayType fieldType = getFieldDisplayType(sObjectName,fieldName); 5 if(fieldType == Schema.Displaytype.BOOLEAN){ 6 return Primitive.TYPE_BOOLEAN; 7 } 8 else if(fieldType == Schema.Displaytype.BASE64 || fieldType == Schema.Displaytype.COMBOBOX || fieldType == Schema.Displaytype.EMAIL || 9 fieldType == Schema.Displaytype.ENCRYPTEDSTRING || fieldType == Schema.Displaytype.ID || fieldType == Schema.Displaytype.MULTIPICKLIST || 10 fieldType == Schema.Displaytype.PHONE || fieldType == Schema.Displaytype.PICKLIST || fieldType == Schema.Displaytype.REFERENCE || 11 fieldType == Schema.Displaytype.STRING || fieldType == Schema.Displaytype.TEXTAREA || fieldType == Schema.Displaytype.URL){ 12 return Primitive.TYPE_STRING; 13 } 14 else if(fieldType == Schema.Displaytype.CURRENCY || fieldType == Schema.Displaytype.DOUBLE || fieldType == Schema.Displaytype.PERCENT){ 15 return Primitive.TYPE_DOUBLE; 16 } 17 else if(fieldType == Schema.Displaytype.INTEGER){ 18 return Primitive.TYPE_INTEGER; 19 } 20 else if(fieldType == Schema.Displaytype.DATE){ 21 return Primitive.TYPE_DATE; 22 } 23 else if(fieldType == Schema.Displaytype.DATETIME){ 24 return Primitive.TYPE_DATETIME; 25 } 26 else { 27 throw new MyException('无对应的基础类型'); 28 } 29 } 30 31 32 private static Schema.DisplayType getFieldDisplayType(String sObjectName,String fieldName) { 33 List<Schema.DescribeSObjectResult> sObjectTypes = Schema.describeSObjects(new String[]{sObjectName}); 34 if(sObjectTypes == null || sObjectTypes.size() == 0) { 35 throw new MyException('无此Object Name'); 36 } 37 Schema.DescribeSObjectResult sObjectDescribeResult = sObjectTypes.get(0); 38 Map<String,Schema.SObjectField> objectFieldMap = sObjectDescribeResult.fields.getMap(); 39 Schema.SObjectField objectField = objectFieldMap.get(fieldName); 40 if(objectField == null) { 41 throw new MyException('无此Field Name'); 42 } 43 Schema.DescribeFieldResult fieldResult = objectField.getDescribe(); 44 45 return fieldResult.getType(); 46 } 47 48 private class MyException extends Exception{} 49 }
效果:
1.存在的相关字段的基本类型
2.不存在的字段的结果显示
总结:此篇用于通过sObject的字段来判断此字段属于哪种基本类型,然后可以通过的基本类型对其进行相关操作。有错误的地方欢迎留言。
相关文章推荐
- salesforce 零基础学习(六十二)获取sObject中类型为Picklist的field values(含record type)
- salesforce零基础学习(八十七)Apex 中Picklist类型通过Control 字段值获取Dependent List 值
- salesforce 零基础学习(三十三)通过REST方式访问外部数据以及JAVA通过rest方式访问salesforce
- django学习——DateTimeField类型通过date过滤器实现不同形式
- salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)
- salesforce 零基础学习(五十五)java通过SOAP方式定时访问某个文件然后插入到sObject中
- salesforce 零基础开发入门学习(十一)sObject及Schema深入
- salesforce 零基础学习(三十二)通过Streams和DOM方式读写XML
- salesforce 零基础学习(三十六)通过Process Builder以及Apex代码实现锁定记录( Lock Record)
- salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)
- C++中为什么不允许通过返回类型重载函数的辩论
- java 与 ActionScript基础类型或常用类的对应关系图
- 近期.NET学习及项目开发整理-SQLSERVER中的数据类型和C#中数据类型的对应
- 近期.NET学习及项目开发整理-SQLSERVER中的数据类型和C#中数据类型的对应
- oXite源码学习导读二:Action的返回类型与IActionInvoker
- 数据类型,运算符和表达式02 - 零基础入门学习C语言03
- Java 5.0 泛型之 通过泛型方法返回泛型类型
- 通过SmartInvoke运用java与flex轻松构建cs程序(映射服务类型与异种平台类型对应规则)
- 数据类型,运算符和表达式01 - 零基础入门学习C语言02
- Javascript学习:基础-类型转换