「Java」Generics(総称型)のクラスを利用するサンプル

構文
親クラス
public abstract class クラス名A<T>
public abstract class クラス名A<T extends クラス名B>
子クラス
public class クラス名C extends 親クラス<クラス名C> {
1.親ベースクラスの定義

package com.arkgame.study.spr;

//Generics(総称型(T))を設定
public abstract class BaseController<T> {

      protected T form;

      public T func(T form) {
            this.form = form;
            return this.form;
      }
}

2.T型クラスの定義

package com.arkgame.study.spr;

public abstract class UserForm {

      private String userId;
      private String addr;

      public String getuserId() {
            return userId;
      }

      public void setuserId(String userId) {
            this.userId = userId;
      }

      public String getAddr() {
            return addr;
      }

      public void setAddr(String addr) {
            this.addr = addr;
      }

}

3.ベースクラスを継承した子クラスの定義

package com.arkgame.study.spr;

import java.util.HashMap;
import java.util.Map;

//BaseControllerを継承した子クラスでUserFormを利用
public class UserController extends BaseController<UserForm> {

      public void func() {
            Map<String, Object> mp = new HashMap<String, Object>();
            // UserForm
            mp.put("user_id", this.form.getuserId());
            mp.put("address", this.form.getAddr());
            //some code
      }
}

 

Java

Posted by arkgame