「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