LoginSignup
7
5

More than 5 years have passed since last update.

Apexで様々な型を混ぜたリストを作りたい時は

Last updated at Posted at 2017-10-25

タイトルはまどろっこしい感じなのですが、ラッパークラスの事です。
初学者すぎてラッパークラスという言葉を知らなかった時に情報にたどり着けなかったのでこんなタイトルにしています。

Apexでデータのリストを作りたいと言う時にはLIST<適当な型> という形で作ります。
sObjectの場合はLISTで、商談のリストを作る時は LISTと宣言します。

ある日Visualforceページにおいて、sObject型に別の項目を追加したようなリストを作りたいと思った時に困りました。
sObjectに数字を加えたいだけなのに!これはsObjectではありません。そんな時に使うのはラッパークラスです。

ラッパークラス
public class wrapperClassName {
        public String name { get; set; }
        public Decimal d1 { get; set; }
        public String s1 { get; set; }
        public Opportunity o1 { get; set; }
        public wrapperClassName(String name,Decimal d1,String s1){
            this.name = name;
            this.d1 = d1;
            this.s1 = s1;
            this.o1 = o1;
        }
    }

これで使う時は普通にnewしてやれば使えます

ApexClass
public List<wrapperClassName> wrapperClassLIST{get;set;}
wrapperClassLIST wlist = new List<wrapperClassName>();

これでVisualforceページ側で読み込みできます。
こんなことでよかったのか!!

Visualforce.page例
<apex:repeat value={!wlist} var="w">
{!w.name}
{!w.o1.Name} <!-- 商談名の取得 -->
</apex:repeat>
7
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5