java apache commons

Java apache commons ClassUtils サンプルプログラム


ClassUtilsの説明(google翻訳)

リフレクションを使用せずにクラスで操作します。
このクラスは、無効なnull入力を可能な限り処理します。各メソッドは、その動作をより詳細に記録します。
標準的な名前の概念には、人間が読めるタイプの名前が含まれています(たとえばint [])。非正規のメソッドのバリエーションは、[I.

今一つ Class.forNameとの使い分けに困るのですが、今回はサンプルを3本用意しました。

ClassUtils#getClass

package jp.pjin.tech.java;

import java.lang.reflect.Field;

import org.apache.commons.lang3.ClassUtils;

public class CommonsExample6_1 {
	public static void main(String[] args) throws ClassNotFoundException {
		Class<?> cls = ClassUtils.getClass("java.lang.Integer");
		System.out.println(cls.getName());
		Field[] fields = cls.getFields();
		for (Field field : fields) {
			System.out.println(String.format("%s %s",
					field.getType().getName(), field.getName()));
		}
	}
}

クラスを取得し、クラスのフィールドを取得して、データ型 変数名と出力するサンプルです。

ClassUtils#isPrimitiveOrWrapper

package jp.pjin.tech.java;

import org.apache.commons.lang3.ClassUtils;

public class CommonsExample6_2 {
	public static void main(String[] args) {
		System.out.println(ClassUtils.isPrimitiveOrWrapper(boolean.class));
		System.out.println(ClassUtils.isPrimitiveOrWrapper(Integer.class));
		System.out.println(ClassUtils.isPrimitiveOrWrapper(String.class));
	}
}

プリミティブ又はラッパークラスかを判定するサンプルです。

ClassUtils#hierarchy

package jp.pjin.tech.java;

import org.apache.commons.lang3.ClassUtils;

public class CommonsExample6_3 {
	public static void main(String[] args) {
		Iterable<Class<?>> hierarchy = ClassUtils.hierarchy(Integer.class);
		hierarchy.forEach(c -> {
			System.out.println(c);
		});
	}
}

継承情報を出力するサンプルです。

  • このエントリーをはてなブックマークに追加

PAGE TOP