技術のメモ箱

Java/メソッド

staticメソッド

public class MethodSample {
    public static void main(String[] args) {
        var result = twice(5);
        System.out.println(result);
    }
    static int twice(int x) {
        return x * 2;
    }
}

インスタンスメソッド

public class InstanceMethodSample {
    record Student(String name, int eScore, int mScore){
        int average() {
            return (eScore() + mScore()) / 2;
        }
    }

    public static void main(String[] args) {
        var f = new Student("miya", 60, 80);
        var a = f.average();
        System.out.println("平均は%dです".formatted(a));
    }
}

ラムダ式

名無しのメソッド。1行のときは、色々省略できる。以下2つは同じ

(int x) -> {
    return x * 2;
}
x -> x * 2

メソッド参照

ラムダ式で受け取った引数をメソッドにそのまま渡しているものはメソッド参照にできる。以下2つは同じ

strList.stream()
    .map(String::toUpperCase)
    .forEach(System.out::println);
strList.stream()
    .map(s -> s.toUpperCase())
    .forEach(x -> System.out.println(x));
pagetop