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