「Java」引数の型がリスト(list)のメソッドを作る方法
書式
1.List<Object>変数名 = new ArrayList<Object>();
2.変数名 instanceof クラス名
3.関数名(List<?>変数名)
使用例
package com.arkgame.demo;
import java.math.BigDecimal;
import java.sql.Date;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
public class ListStDeno {
protected static Integer cftA = 456;
protected static String strB = "arkgame";
protected static Long lgC = 789l;
protected static BigDecimal bd = new BigDecimal("56.58");
protected static Date dt = Date.valueOf("2021-09-02");
protected static Timestamp tsp = Timestamp.valueOf("2021-11-02 11:12:23");
public static void main(String[] args) {
List<Object> lst = new ArrayList<Object>();
// Integer型
lst.add(cftA);
// String型
lst.add(strB);
// Long型
lst.add(lgC);
// BigDecimal型
lst.add(bd);
// Date型
lst.add(dt);
// Timestamp
lst.add(tsp);
// 引数List<Object>を渡す
setLst(lst);
}
//引数の型List
private static void setLst(List<?> pst) {
for (int i = 0; i <= pst.size() - 1; i++) {
Object pm = pst.get(i);
// Integerクラスのインスタンスか
if (pm instanceof Integer) {
System.out.println("値: " + pm + "****クラス1: " + pm.getClass());
// Stringクラスのインスタンスか
} else if (pm instanceof String) {
System.out.println("値: " + pm + "****クラス2: " + pm.getClass());
// Longクラスのインスタンスか
} else if (pm instanceof Long) {
System.out.println("値: " + pm + "****クラス3: " + pm.getClass());
// BigDecimalクラスのインスタンスか
} else if (pm instanceof BigDecimal) {
System.out.println("値: " + pm + "****クラス4: " + pm.getClass());
// Dateクラスのインスタンスか
} else if (pm instanceof java.sql.Date) {
System.out.println("値: " + pm + "****クラス5: " + pm.getClass());
// Timestampクラスのインスタンスか
} else if (pm instanceof Timestamp) {
System.out.println("値: " + pm + "****クラス6: " + pm.getClass());
}
}
}
}
結果
値: 456****クラス1: class java.lang.Integer
値: arkgame****クラス2: class java.lang.String
値: 789****クラス3: class java.lang.Long
値: 56.58****クラス4: class java.math.BigDecimal
値: 2021-09-02****クラス5: class java.sql.Date
値: 2021-11-02 11:12:23.0****クラス6: class java.sql.Timestamp