apache commons

Apache Commons Javaプログラム演習問題 第10回


Apache Commons を利用した Java でのプログラム作成問題の10回目となります。

環境を構築していない場合は、概要を読み、環境を構築してから実施してください。

※この出題形式に関しては答えは1つではありません。
解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正解として下さい。

問題

jp.pjin.tech.commons.domain.BloodType.java

package jp.pjin.tech.commons.domain;

public enum BloodType {
	A, B, O, AB
}

jp.pjin.tech.commons.domain.User.java

package jp.pjin.tech.commons.domain;

import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.time.LocalDate;

import org.apache.commons.beanutils.BeanUtils;

import lombok.Data;

@Data
public class User implements Serializable {

	private int id;
	private String name;
	private BloodType type;
	private LocalDate birthday;
	private String mail;
	private String phone;

	@Override
	public User clone() throws CloneNotSupportedException {
		try {
			return (User) BeanUtils.cloneBean(this);
		} catch (IllegalAccessException | InstantiationException | InvocationTargetException
				| NoSuchMethodException e) {
			e.printStackTrace();
		}
		return null;
	}
}

jp.pjin.tech.commons.Practice010.java

package jp.pjin.tech.commons;

import java.time.LocalDate;
import java.util.HashMap;
import java.util.Map;

import jp.pjin.tech.commons.domain.BloodType;
import jp.pjin.tech.commons.domain.User;

public class Practice010 {
	public static void main(String[] args) throws Exception {

		Map<String, Object> user = new HashMap<>();
		user.put("id", 123);
		user.put("name", "大高弘明");
		user.put("type", BloodType.B);
		user.put("birthday", LocalDate.parse("2000-12-10"));
		user.put("mail", "hiroaki.ootaka@ssie.jp");
		user.put("phone", "000-9999-8888");

		User ootaka = new User();
		ootaka.setId((Integer) user.get("id"));
		ootaka.setName((String) user.get("user"));
		ootaka.setType((BloodType) user.get("type"));
		ootaka.setBirthday((LocalDate) user.get("birthday"));
		ootaka.setMail((String) user.get("mail"));
		ootaka.setPhone((String) user.get("phone"));

		System.out.println(ootaka);

	}
}

Mapで生成しているデータがあります。
これをUserオブジェクトに変換しているのですが、良くこういったソースを目にします。
Userオブジェクトのフィールドが6項目なので、それほど長くないですが、多くなるとその分長くなります。

実際は、全てStringの値が来ることになるのですが、まあ、置いておいて。
先に値がUserオブジェクトの型と同様になるような状態からスタートしましょう。

この代入部分をcommonsを利用して、簡略化してください。

解答例1
apache commons

Apache Commons Javaプログラム演習問題 第19回

Apache Commons を利用した Java でのプログラム作成問題の19回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Common […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第18回

Apache Commons を利用した Java でのプログラム作成問題の18回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Common […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第17回

Apache Commons を利用した Java でのプログラム作成問題の17回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Common […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第16回

Apache Commons を利用した Java でのプログラム作成問題の16回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第12回

Apache Commons を利用した Java でのプログラム作成問題の12回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第15回

Apache Commons を利用した Java でのプログラム作成問題の15回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第14回

Apache Commons を利用した Java でのプログラム作成問題の14回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第13回

Apache Commons を利用した Java でのプログラム作成問題の13回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第11回

Apache Commons を利用した Java でのプログラム作成問題の11回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第10回

Apache Commons を利用した Java でのプログラム作成問題の10回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
  • このエントリーをはてなブックマークに追加

PAGE TOP