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

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

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

Javadocは、Java言語で記述されたクラスライブラリ、及びアプリケーションについてのパッケージ・クラス・メソッドのHTML形式のAPI仕様書のことを指します。ドキュメント更新の漏れを減らすことができ、最新の状態を把握することが可能になります。

Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

受付中

必要なimport文を教えてください

uk_yamayam
uk_yamayam

総合スコア11

Javadoc

Javadocは、Java言語で記述されたクラスライブラリ、及びアプリケーションについてのパッケージ・クラス・メソッドのHTML形式のAPI仕様書のことを指します。ドキュメント更新の漏れを減らすことができ、最新の状態を把握することが可能になります。

Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

1回答

0グッド

1クリップ

539閲覧

投稿2022/10/09 04:46

編集2022/10/09 07:49

前提

下記記事を参考にredisに対してsample dataをpost/getできるようなサンプルアプリを構築しようとしております
https://qiita.com/yut_arrows/items/07eabf48235d04331f9e

実現したいこと

下記サンプルコードがあるのですが、コンパイルエラーが出ます
import文が足りてないと思うのですが、何を追加すれば良いのかご教示頂けますと幸いです

java

1@Data 2@Getter 3@Setter 4class RedisSampleData { 5 6 private String string; 7 8 private List<String> list; 9 10 private Map<String, String> map; 11 12}

java

1@RestController 2@RequestMapping(value = "/SampleRedis") 3public class RedisSampleController { 4 5 @Autowired 6 private StringRedisTemplate redisTemplate; 7 8 @PostMapping 9 public void post(@RequestBody RedisSampleData redisSampleData) { 10 redisTemplate.delete("redis-tutorial:string"); 11 redisTemplate.opsForValue() 12 .set("redis-tutorial:string", redisSampleData.getString()); 13 redisTemplate.delete("redis-tutorial:list"); 14 redisTemplate.opsForList() 15 .rightPushAll("redis-tutorial:list", 16 redisSampleData.getList().toArray(new String[0])); 17 redisTemplate.delete("redis-tutorial:map"); 18 redisTemplate.opsForHash() 19 .putAll("redis-tutorial:map", redisSampleData.getMap()); 20 } 21 22 @GetMapping 23 public RedisSampleData get() { 24 RedisSampleData redisSampleData = new RedisSampleData(); 25 redisSampleData.setString( 26 redisTemplate.opsForValue() 27 .get("redis-tutorial:string") 28 ); 29 redisSampleData.setList( 30 redisTemplate.opsForList() 31 .range("redis-tutorial:list", 0, -1) 32 ); 33 redisSampleData.setMap( 34 redisTemplate.<String, String>opsForHash() 35 .entries("redis-tutorial:map") 36 ); 37 return redisSampleData; 38 } 39}

(追記)
IDEは使用しておらずGradleを使ってビルドをしました。
build.gradleファイルの中身は下記です。
参照元のqiita記事にあるbuild.gradleファイルの中身だとcompileメソッドがないとエラーが出ましたので、Springのinitializerを使って作成したbuild.gradleの中身をそのまま持ってきております。

build.gradle

1plugins { 2 id 'org.springframework.boot' version '2.7.4' 3 id 'io.spring.dependency-management' version '1.0.14.RELEASE' 4 id 'java' 5} 6 7group = 'com.example' 8version = '0.0.1-SNAPSHOT' 9sourceCompatibility = '1.8' 10 11repositories { 12 mavenCentral() 13} 14 15dependencies { 16 implementation 'org.springframework.boot:spring-boot-starter-data-redis' 17 implementation 'org.springframework.boot:spring-boot-starter-web' 18 testImplementation 'org.springframework.boot:spring-boot-starter-test' 19} 20 21tasks.named('test') { 22 useJUnitPlatform() 23}

試したこと

import java.util.List;
import java.util.Map;
import lombok.Data;
import org.springframework.data.redis.core;
import org.springframework.context.annotation;
を追加しましたが、

RedisSampleData.java:4: error: package lombok does not exist
import lombok.Data;

や、

java:6: error: cannot find symbol
@Data
^
symbol: class Data

といったエラーが出てしまいます…。
(追記)
エラー全文はこちらです。

java

1> Task :compileJava FAILED 2/src/main/java/RedisSampleData.java:4: error: package lombok does not exist 3import lombok.Data; 4 ^ 5/src/main/java/RedisSampleData.java:6: error: cannot find symbol 6@Data 7 ^ 8 symbol: class Data 9/src/main/java/RedisSampleData.java:7: error: cannot find symbol 10@Getter 11 ^ 12 symbol: class Getter 13/src/main/java/RedisSampleData.java:8: error: cannot find symbol 14@Setter 15 ^ 16 symbol: class Setter 17/src/main/java/RedisSampleController.java:3: error: cannot find symbol 18import org.springframework.data.redis.core; 19 ^ 20 symbol: class core 21 location: package org.springframework.data.redis 22/src/main/java/RedisSampleController.java:4: error: cannot find symbol 23import org.springframework.context.annotation; 24 ^ 25 symbol: class annotation 26 location: package org.springframework.context 27/src/main/java/RedisSampleController.java:6: error: cannot find symbol 28@RestController 29 ^ 30 symbol: class RestController 31/src/main/java/RedisSampleController.java:7: error: cannot find symbol 32@RequestMapping(value = "/SampleRedis") 33 ^ 34 symbol: class RequestMapping 35/src/main/java/RedisSampleController.java:11: error: cannot find symbol 36 private StringRedisTemplate redisTemplate; 37 ^ 38 symbol: class StringRedisTemplate 39 location: class RedisSampleController 40/src/main/java/RedisSampleController.java:10: error: cannot find symbol 41 @Autowired 42 ^ 43 symbol: class Autowired 44 location: class RedisSampleController 45/src/main/java/RedisSampleController.java:14: error: cannot find symbol 46 public void post(@RequestBody RedisSampleData redisSampleData) { 47 ^ 48 symbol: class RequestBody 49 location: class RedisSampleController 50/src/main/java/RedisSampleController.java:13: error: cannot find symbol 51 @PostMapping 52 ^ 53 symbol: class PostMapping 54 location: class RedisSampleController 55/src/main/java/RedisSampleController.java:27: error: cannot find symbol 56 @GetMapping 57 ^ 58 symbol: class GetMapping 59 location: class RedisSampleController 60/src/main/java/RedisSampleController.java:17: error: cannot find symbol 61 .set("redis-tutorial:string", redisSampleData.getString()); 62 ^ 63 symbol: method getString() 64 location: variable redisSampleData of type RedisSampleData 65/src/main/java/RedisSampleController.java:21: error: cannot find symbol 66 redisSampleData.getList().toArray(new String[0])); 67 ^ 68 symbol: method getList() 69 location: variable redisSampleData of type RedisSampleData 70/src/main/java/RedisSampleController.java:24: error: cannot find symbol 71 .putAll("redis-tutorial:map", redisSampleData.getMap()); 72 ^ 73 symbol: method getMap() 74 location: variable redisSampleData of type RedisSampleData 7516 errors 76

そもそもアノテーションを使用する際はimportが必要なのでしょうか?ビルドファイル(gradle,buildやpom.xmlに記載すればいいのかと思ってました)import必要だとして、org.springframework.context.annotationが必要と言っているものや、lombokが必要と言っているものがあり、(手元ではどちらも失敗しており)恥ずかしながら混乱しております、、

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

y_waiwai

2022/10/09 05:54

エラーが出たなら、エラーメッセージを提示しましょう エラーメッセージは、よけいな省略翻訳しないで出たそのママをコピペで提示してください
m.ts10806

2022/10/09 06:48

IDEをお使いでしょうか。 MavenでしょうかGradleでしょうか。 環境情報を記載してください。
uk_yamayam

2022/10/09 07:45

y_waiwai様 ご指摘ありがとうございます。エラー全文を追記致しました。 m.ts10806様 コメントありがとうございます。 IDEは使っておりません。ビルドツールはGradleを使っております。 build.gradleファイルの内容についても質問文に追記しました。

回答1

0

本件、importが間違っているのではなく、パッケージ管理ツールの設定ファイルに
必要なパッケージ・ライブラリの記述がないことで、プロジェクトに必要なライブラリが取り込まれてない(クラスパスも通されていない)
ことが問題です。
@Data , @Getter , @Setter はLombokが持っているアノテーションです。
参考:https://penguinlabo.hatenablog.com/entry/java/lombok/list
ちなみに上記の記事通り、@Getterも@Setterも@Dataに含まれるので、@Dataだけで十分です。
※私も@Dataだけ使ってます

LombokのGradleの記述方法については「Gradle Lombock」で検索すると公式情報が出てきます。
https://projectlombok.org/setup/gradle

私は基本MavenなのでMaven Repositoryから探します。
Maven RepositoryにはGradle用の記述もでてくるので、使いたいパッケージがあるのでしたら、
Maven Repository内で探すと良いと思います。
※例えばLombok

投稿2022/10/09 09:31

編集2022/10/09 22:54
m.ts10806

総合スコア80038

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

2022/10/09 22:45依頼された後にこの回答は修正されています

こちらの回答が他のユーザーから「質問に対する回答となっていない投稿」という指摘を受けました。

回答へのコメント

m.ts10806

2022/10/09 22:53 編集

Java分かってる人の修正依頼じゃないですね。修正依頼が的外れ(具体的に何がどう違うのかコメントもないし) また嫌がらせか。頑張るところそこじゃないでしょうに。 「低評価」のつもりで足引っ張ったところで逆効果でしかないことが分からないのかな。

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

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

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

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Javadoc

Javadocは、Java言語で記述されたクラスライブラリ、及びアプリケーションについてのパッケージ・クラス・メソッドのHTML形式のAPI仕様書のことを指します。ドキュメント更新の漏れを減らすことができ、最新の状態を把握することが可能になります。

Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。