Closed GitEngHar closed 3 weeks ago
String test1 = null;
if(StringUtils.isEmpty(test1)){
}
HashCodeBuilder.reflectionHashCode(this);
EqualsBuilder.reflectionEquals(this);
# "versionNo"というフィールドを除外する
HashCodeBuilder.reflectionHashCode(this,"versionNo");
EqualsBuilder.reflectionEquals(this,"versionNo");
before
this.mail = org.mail
this.name = org.name
this.weight = org.weight
after
BeanUtils.copyProperties(this,org)
dozer.sourceforge を利用することであるゆる階層でディープコピーを利用できる
シャローコピーを利用すると、参照元の値は同じなので元を書き換えた場合他の変数でも変化した値が参照される
正しくCSVのデータを処理するための手助けをしてくれるツール
Super CSV
読み込みには CellProcessor
クラスを用いて定義する
こちら より jackson-annotations , core , databind の jar をダウンロード
settings.jsonでライブラリの参照先を確認
{
"java.project.sourcePaths": ["src"],
"java.project.outputPath": "bin",
"java.project.referencedLibraries": [
"lib/**/*.jar" <-ここが参照先
]
}
ディレクトリ構成
Employee (Jsonデータを格納しておくコード)
import java.util.List;
public class Employee {
public String name;
public Integer age;
public List<String> licenses;
public String getName(){
return this.name;
}
}
App.java
import java.io.File;
import java.util.Arrays;
import java.util.Map;
import com.fasterxml.jackson.databind.ObjectMapper;
public class App {
public static void main(String[] args) throws Exception {
createJson();
}
public static void readJson() throws Exception{
File file = new File("./employee.json");
ObjectMapper mapper = new ObjectMapper();
Employee emp = mapper.readValue(file,Employee.class);
System.out.println(emp.getName());
Map<?,?> map = mapper.readValue(file, Map.class);
System.out.println(map.get("age"));
}
public static void createJson() throws Exception{
Employee emp = new Employee();
emp.name = "TestUser01";
emp.licenses = Arrays.asList("CKA","CKS");
emp.age = 20;
File file = new File("newEmp.json");
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(file,emp);
}
}
employee.json 読み込み用のjsonデータ
{
"name" : "EngHar",
"age" : 25,
"licenses" : ["CKA","CKAD"]
}
readJsonメソッド
EngHar
25
createJsonメソッド
newEmpが作られファイルの中身は以下の通り
{"name":"TestUser01","age":20,"licenses":["CKA","CKS"]}
拡張ユーティリティなため、外部からダウンロード必要
https://commons.apache.org/proper/commons-lang/
Maven で利用する場合は pom.xmlに以下のように記入