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