質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

6381閲覧

Lombokが使用できない

tapipi

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/08/28 01:58

前提・実現したいこと

Lombokのゲッターを用いて
getName()メソッドを使用したい。

発生している問題・エラーメッセージ

Question01.java:12: エラー: シンボルを見つけられません System.out.println(h1.getName()); ^ シンボル: メソッド getName() 場所: タイプHeroの変数 h1

該当のソースコード

java

1 2import java.util.ArrayList; 3import java.util.List; 4 5public class Question01 { 6 public static void main(String[] args) { 7 Hero h1 = new Hero("斎藤"); 8 Hero h2 = new Hero("鈴木"); 9 10 System.out.println(h1.getName()); 11 List<Hero> list = new ArrayList<>(); 12 list.add(h1); 13 list.add(h2); 14 //list.add("お金") 入れられるのはHero型だけ 15 for (Hero team : list){ 16 System.out.println(team.getName()); 17 } 18 } 19 20} 21

java

1package q004; 2 3import lombok.Getter; 4import lombok.Setter; 5 6@Getter 7@Setter 8public class Hero { 9 private String name; 10 11 public Hero(String name){ 12 this.name = name; 13 } 14} 15

試したこと

getName()をHeroクラスで作成して実行したところ
問題なく動作が完了いたしました。

なぜLombokを使用できないのか。

アノテーションは色が表示され、機能しているように感じます。

補足情報(FW/ツールのバージョンなど)

使用ソフト:InteliJ(無料版)

gradleの依存関係は以下のようになっております。

gradle

1plugins { 2 id 'java' 3} 4 5group 'org.example' 6version '1.0-SNAPSHOT' 7 8repositories { 9 mavenCentral() 10} 11 12dependencies { 13 testCompile group: 'junit', name: 'junit', version: '4.12' 14 compileOnly("org.projectlombok:lombok:1.16.10") 15 16} 17

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TN8001

2020/08/28 11:52

まったく素人なのでこちらに書きますが、 [mplushnikov/lombok-intellij-plugin: Lombok Plugin for IntelliJ IDEA](https://github.com/mplushnikov/lombok-intellij-plugin 上記ドキュメント通り作業しました。 実行はできるが赤線が残る状態になったりしましたが、IntelliJ IDEAを再起動したりしているうちに直ってしまいました(よくわかりません)
guest

回答1

0

build.gradleにannotationProcessorの設定がないのが原因なように見えます。
手元のJavaのバージョンの都合で、lombokのバージョンを質問者さんのバージョンより新しくしていますが、基本は変わらないと思います。
こちらの環境に合わせて色々追加していますが、重要なのは がついた行だけだと思います。

ソースコードは基本的に変更していません。(パッケージ構成に合わせて場所は替えましたが)

Gradle

1plugins { 2 id 'java' 3} 4 5group 'org.example' 6version '1.0-SNAPSHOT' 7 8// オプション:JARの名前を指定しておく 9jar.baseName = 'Question01' 10 11repositories { 12 mavenCentral() 13} 14 15// オプション:Javaのバージョン指定 16java { 17 sourceCompatibility = JavaVersion.VERSION_1_8 18 targetCompatibility = JavaVersion.VERSION_1_8 19} 20 21// オプション:java ~~~.jarで実行されたときのメインクラスを指定 22jar { 23 manifest.attributes 'Main-Class': 'org.example.Question01' 24} 25 26dependencies { 27 testCompile group: 'junit', name: 'junit', version: '4.12' 28 29 compileOnly("org.projectlombok:lombok:1.18.12") 30 31 // ★この行追加★:lombokアノテーションプロセッサの設定 32 annotationProcessor 'org.projectlombok:lombok:1.18.12' 33}

念のため、どう実行したかも記述しておきます

shell

1> gradle jar 2 3BUILD SUCCESSFUL in 716ms 42 actionable tasks: 2 executed 5 6> java -jar build/libs/Question01-1.0-SNAPSHOT.jar 7斎藤 8斎藤 9鈴木

投稿2020/08/28 12:27

YakumoSaki

総合スコア2027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問