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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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型クラスの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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.ベースクラスを継承した子クラスの定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
      }
}

 

Java

Posted by arkgame