「Java」引数の型がリスト(list)のメソッドを作る方法

2021年9月2日

書式
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

Java

Posted by arkgame