Java

String#join

前回に引き続き、文字列の連結。 //String#joinメソッド。第一引数に区切り文字 //文字列連結 String joined = String.join(",", "a", "b", "c"); System.out.println(joined); //String配列の要素の連結 String[] arr = {"aa", "bb", "cc"}; String arrJoin…

StringJoinerによる文字列連結

//StringJoinerのコンストラクタに区切り文字を渡す StringJoiner joiner = new StringJoiner(","); //StringJoinerに連結する文字列を追加していく joiner.add("one"); joiner.add("two"); joiner.add("three"); joiner.add("four"); //toStringを呼び出す …

ヌルオブジェクトの導入

リファクタリングより、「ヌルオブジェクトの導入」 このようなコードがあるとする public String getPersonName(Person person) { //NULL判定をして返却する値を変えている! if (person == null) { return "unknown"; } else { return person.getName(); }…

ビルダーパターン

effectiveJava 2nd Editionより、 『数多くのコンストラクタパラメータに直面した時にはビルダーを検討する』 /** * No2.builder pattern * @author User * */ public class Person { private final int age; private final String name; private String cit…

Mockitoでできること

Junitで使用するMockitoでいろいろ実験。 Mockitoを使用することで、任意のメソッドの挙動(返り値や例外送出)を操作することができる。 本来のテスト対象でないメソッドなどを一定の動きに制約したい時などに使う。 使用する場合はJarをダウンロードするも…

PowerMock

mockitで実現できない(しづらい)staticメソッドやprivateメソッドのモック化をする PowerMockを使ってみる。 今回はひとまずstaticメソッド。 テスト対象クラス private StudyUtil() { } //本日日付をYYYYMMDDで返却する public static String getToday(){…

Java silver 勉強中

JavaSilver勉強中。今更感あるけど(笑) 黒本の章末、総仕上げ問題で不正解だったものを実際にコーディングして復習。 ①子クラスで継承したメソッドの可視性を厳しくすることはできない interface inter { //インターフェースで宣言したメソッドは暗黙的にp…

for文の挙動について

javaのfor文の挙動について。 初歩レベルだけどあまり意識しないで使っていたことが判明。 更新処理って一番最後だったんですね。 public static void main(String[] args) { for (int i = initialize(); condition(i) ; update()) { System.out.println("ル…

java 正規表現

今更だけどjavaで正規表現。 今回は携帯電話番号の形式になっているかを調査する。 javaで正規表現を用いた入力値チェックをするときには ①String#matchesメソッドを使用 ②Patternクラス・Matherクラスを使用する の2通りが考えられるので1つずつ見ていく。 …

現場で役立つシステム設計の原則

これ読んでる。 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法作者: 増田亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: Kindle版この商品を含むブログ (2件) を見る オブジェクト指向におけるよりよい設計…

オブジェクトのリストをArrayList<ArrayList<String>>に変換する

オブジェクト(今回はPersonオブジェクト)のリストを Personオブジェクトのプロパティ文字列のリストに変換する。 (Personはnameとageのプロパティを持つ) public class ServiceClass { private int cnt; { cnt = 1; } public void hoge() { Person p1 = …

Java 可変長引数の使い方

可変長引数は、同一の型の引数について、 呼び出し元から渡される引数の数が不定の場合に有用な方法である。 が、使用方法を誤るといろいろ面倒なことになるそうなので、以下にメモ。 とりあえず、使い方を書いてみる。 //渡された可変長引数の中から、最長…

Java Streamで遊ぶ

Streamの大まかな流れ Stream化 → 中間処理(→中間処理→中間処理→・・) →終端処理 やってみる public static void main(String[] args) { List<Person> persons = new ArrayList<>(); Person taro = new Person("taro", 20); Person jiro = new Person("taro", 22);</person>…

特定のフォルダにある特定の名前から始まるファイルだけを操作する

public static void main(String[] args) { //フォルダの指定 File file = new File("C:\\Users\\User\\test"); //#listFiles(FileFilter)を使用して特定の名前(test)から始まるファイルだけを操作対象にする Arrays.stream(file.listFiles(f -> f.getName…