Apex SObjectField クラスを使って対象オブジェクトのカスタム項目を取得する方法
環境
Salesforce
構文
1.endsWith(suffix)
メソッドをコールした string が suffix で終わる場合、true を返します。
suffix 型: String
戻り値 型: Boolean
2.SObjectField クラス
Schema.sObjectField オブジェクトは、getController および getSObjectField メソッドを使用して
Field Describe Result から返されます。
getDescribe()
この項目の Describe Field Result を返します。
3.fields
fields の後には項目メンバー変数名または getMap メソッドが続きます。
型: 戻り値は特殊なデータ型です。
操作例
1.カスタム項目取得メソッドの定義
public static List<String> getCustomNameList(Schema.SObjectType sObjectType) { //対象オブジェクトのカスタム項目を取得 List<String> fieldList = new List<String>(); //sObjectオブジェクトMapの宣言 Map<String, Schema.sObjectField> sObMap = sObjectType.getDescribe().fields.getMap(); //Mapの結果をループ for(String fieldName : sObMap.keySet()){ //カスタム項目の最後文字列の判定 if(fieldName.endswith('__c')) { //カスタム項目の追加 fieldList.add(fieldName); } } return fieldList; }
2.使い方
クラス名.getCustomNameList(xxxx);