【Java】☕️JavaBeansとは何か?

f:id:hira98:20190619084627p:plain

【結論】

  • JavaBeansは銀行に置き換えるとすんなり理解できる。

  • Rubyと比較すると、Javaのソースはとにかく長い。

  • STSでは、getter/setterを自動生成してくれる機能がある。

【目次】

はじめに

Spring修行の途中経過を書きます。

hira98.hatenablog.com

今回は、Spring修行するにあたって不足している、JavaBeansについて理解を深めてみました。

JavaBeansとは

余計なことは一切考えず、JavaBeans=銀行 を脳みそに刷り込んでください。

刷り込みができたら以下の記事を読んでみてください。

qiita.com

さいごに

このような良記事をタダで読めるなんて良い時代です。

私もこんな記事が書けるようにスキルを磨いていこうと思います。

以上です🤪

…で終わるとあまりにも短すぎるので、JavaBeansの実装をJavaRubyで書いてみたので載せておきます。

Javaで書いた場合

とにかく長いです🤮

class Profile {
  private String name;
  private int age;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
}

public class Sample {
  public static void main(String args[]) {
    Profile profile = new Profile();
 
    profile.setName("万年 寝太郎");
    profile.setAge(20);

    System.out.println("名前:"+ profile.getName());
    System.out.println("年齢:"+ profile.getAge());
  }
}

実行結果

名前:万年 寝太郎
年齢:20

Rubyで書いた場合

ProfileクラスがJavaBeansに相当する部分です。

読み書きするためのアクセサメソッドの定義であることを表すattr_accessorメソッドとして、nameやage変数を定義してあげるだけです。

class Profile
  attr_accessor :name
  attr_accessor :age
end

profile = Profile.new
profile.name = "万年 寝太郎"
profile.age = 20

puts "名前:#{profile.name}"
puts "年齢:#{profile.age}"

実行結果

名前:万年 寝太郎
年齢:20

Javaでgetter/setterを自動生成する方法

Javaのソースを長くしている諸悪の根源😈であるgetter/setter(name変数に対するgetName()やsetName(String name)のこと)に関して、自動生成してくれる機能が存在します。

※手順の解説は、Mac🍎でSTS(spring tool suite)を使う前提です。

手順1

クラスと変数を宣言します。この時点で既にgetter/setterが宣言されていないと、警告⚠️を出してくれます。

f:id:hira98:20190619084813p:plain

手順2

[ソース]→[getterおよびsetterの生成]を選択します。

f:id:hira98:20190619084824p:plain

手順3

[getterおよびsetterの生成]画面が表示されるので、設定後に[生成]ボタンを押下します。

f:id:hira98:20190619084837p:plain

手順4

nameとage変数に対するgetter/settrメソッドが自動生成されます。

f:id:hira98:20190619084847p:plain

参考情報

【初心者向け】10分で絶対にわかる!JavaBeansとは - Qiita

attr_accessor (Module) - Rubyリファレンス