「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 } }