見出し画像

【初心者向け】プログラミングでよく出てくるアノテーションって何?

初心者SEが使い方に困ったコードのひとつが、アノテーションです。

そのまま訳せば「注釈」になります。

「@…」から始まる、コードの1番上に置かれたり項目やメソッドの直前に置かれる文です。


どういう意味なのかというと。

あるデータに対して関連する情報(メタデータ)を注釈として付与すること。
XML等の記述形式を用いてメタデータをタグ付けする場合が多い。
Wikipediaより

メタデータってメタバースと似てる?となるかもしれませんが、メタデータというのは、「データのデータ」です。

あるデータに関する情報(付加される情報)ですね。

少々脱線しましたが、アノテーションの例をあげればJavaの「@override」です。
スーパークラスのメソッドをオーバーライドしているよ(同じメソッドを使っているよ)という意味です。

@Override
public class output(){
    System.out.println("hello!");
}


アノテーションの機能

では、具体的にアノテーションにはどんな機能があるのでしょうか。

・わざとエラーを出してスペルミスをなくす
・画面表示するときの項目の動きを追加する
・そのメソッドが、どう動くのかを明示する(書き方の統一)
など

ソースコードは手で書く分、どうしてもスペルミスが発生します。

なんか動かないなあと思ったらスペルミスというのはしょっちゅうです…

アノテーションはそうしたミスを防げます。

また大人数で開発するときは、コミュニケーションのために書き方の統一が必要になってきます。
アノテーションはその統一方法の1つとして使われます。

言語によって使い方が多様なので、ひとつひとつパターンを覚えていく必要があります。

アノテーションの種類

アノテーションにはどういう種類があるのか?

マーカーアノテーション:特にデータを持たない
単一アノテーション:データ(メソッドなど)を1つもつ
フルアノテーション:データを複数持つ

先ほど例に挙げた「@override」はマーカーアノテーションです。

ただ「必ずこのメソッドをoverrideしてね」と示すだけです。

単一アノテーションでは、

public @interface createDate(){
    string value();
}

フルアノテーションでは、

public @interface createDate{
    string value();
    int number();
}


今回の記事では省きましたが、機械学習分野でもアノテーションの考え方があります。

アノテーションの自作もできるので、思ったよりも幅が広く奥が深いなと感じました。

その分理解して使いこなせたら、脱初心者への1歩ですね!

仕事でプログラミングをしていると、聞きなれない言葉ばかり飛び交います。

全てを調べる時間も気力もないので、その中でもよく聞くな、ここはもっと知りたいなという感覚を優先にしてアウトプットしていきたいと思います。

ここまで読んでくださりありがとうございます!

スキやコメント、フォローをしてくださると大変嬉しいです😆