Return or not return

次のコードをコンパイルした時、コンパイルエラーが出るメソッドはどれでしょう?複数あります。

public class Main {

    String case1() {
        while (true) {

        }
    }

    private boolean case2 = true;
    String case2() {
        while (case2) {

        }
    }

    private final boolean case3 = true;
    String case3() {
        while (case3) {

        }
    }

    String case4() {
        boolean case4 = true;
        while (case4) {

        }
    }
}
続きを読む

IntelliJで寿司を回す

はじめに

この記事はJetBrains Advent Calendar 2016の記事です。

最近Twitterではエディタで寿司を流すのが流行っているそうです。私の観測した範囲ではvimemacsで寿司を流している方が居るみたいです。
そんな最近の流行に乗ってIntelliJでも寿司を流すことにしました。

続きを読む

Unmodifiable – Java Puzzlers Advent Calendar3日目

import java.util.*;
 
public class Main {
    public static void main(String[] args) {
        List<String> strings = new ArrayList<>(Arrays.asList("aaa", "bbb", "ccc"));
        List<String> unmodifiableList = Collections.unmodifiableList(strings);
 
        System.out.print(unmodifiableList.size());
        System.out.print(", ");
        strings.remove("aaa");
 
        System.out.print(unmodifiableList.size());
    }
}

上のコードを実行した時の結果はどれになるでしょうか?

続きを読む

Equals Method Overloading - Java Puzzlers Advent Calendar1日目

Equals Method Overloading

import java.util.*;
 
class Student {
    private int id;
 
    Student(int id) {
        this.id = id;
    }
 
    public boolean equals(Student student) {
        return student != null && student.id == id;
    }
 
    @Override
    public int hashCode() {
        return Objects.hash(id);
    }
}
 
public class Main {
    public static void main(String[] args) {
        List<Student> students = new ArrayList<>();
        students.add(new Student(1));
        students.add(new Student(2));
 
        students.remove(new Student(1));
 
        System.out.println(students.size());
  }
}
続きを読む