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

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

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

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

Spring

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

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

Q&A

解決済

1回答

541閲覧

[java] 値の取得方法がわからない。

sui_15

総合スコア24

Java

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

Spring

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

MyBatis

MyBatisはJavaや.NET Frameworkでなどで使用できる、SQL文や、ストアドプロシージャをオブジェクトと紐付けるO/Rマッピングフレームワークです。

0グッド

0クリップ

投稿2022/02/20 23:23

編集2022/02/21 00:53

閲覧ありがとうございます。
メソッドの値にnewがついているときの値の取得方法がわかりません。

java

1@Mapper 2public interface FoodsMapper{ 3 List<Map<String, Object>> findByTypeAndPriceUsingClass(FoodsParam param); 4}

java

1public class MainTest{ 2 @Autowired 3 private FoodsMapper foodsMapper; 4 5 @Test 6 void test(){ 7 foodsMapper.findByTypeAndPriceUsingClass( 8 new FoodsParam("野菜", 500)); 9 } 10}

newをつけない場合は処理が成功しました。
つまり、インスタンスパラメータの受け渡しの方法がわからないというわけです。

error: constructor FoodsParam in class FoodsParam cannot be applied to given types; new FoodsParam("野菜", 500)); ^ required: no arguments found: String,int reason: actual and formal argument lists differ in length

java

1@Data 2@Entity 3public class FoodsParam{ 4 @Id 5 @GeneratedValue(strategy = GenerationType.IDENTITY) 6 private Integer id; 7 @Column(nullable = false) 8 private String name; 9 private String type; 10 private Integer price; 11 12 FoodsParam(){ 13 } 14 15 public FoodsParam(String type, Integer price){ 16 this.type = type; 17 this.price = price; 18 } 19}

かなりいろいろ調べてみたのですが、うまくいかなかったため質問させていただきます。
ご回答のほどよろしくお願いいたします。

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

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

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

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

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

xebme

2022/02/21 01:14

エラーメッセージは、FoodsParamのコンストラクターの引数が、String, intとなるものはない。引数なしのコンストラクターしか宣言されていないと読めますが、いかがですか。
sui_15

2022/02/21 01:27

その通りでした。FoodsParamにそれらを追加したところうまく動かすことができました。
guest

回答1

0

ベストアンサー

required: no arguments
found: String,int

このエラーは、第一引数にString、第二引数にintを取るコンストラクタが存在しないことを示しています。
以下のようなコンストラクタをFoodsParamに追加します。

Java

1public FoodsParam(String key, int value) { 2 // 以下、フィールド名がわからないので仮置きです 3 this.key = key;  4 this.value = value; 5}

newをつけない場合は処理が成功しました。

これはFoodsParamのコード及びMainTestの全貌がないと、何故成功するのか分かりません。
一般的には奇妙な状態に見えます。

投稿2022/02/21 00:12

PlugOut777

総合スコア917

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

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

sui_15

2022/02/21 00:57

PlugOut777様 ご回答ありがとうございます。 もとからあったFoodsParamクラスの記述と、,PlugOut777様からご指摘いただきたコンストラクタを 追加したところ、テストを動かすことができました。ありがとうございます。 しかし、List<Map<String, Object>> findByTypeAndPriceUsingClass(FoodsParam param);のところで org.apache.ibatis.reflection.ReflectionExceptionというエラーが出てしまいます。
PlugOut777

2022/02/21 01:06

>org.apache.ibatis.reflection.ReflectionExceptionというエラーが出てしまいます。 こちらのエラーの内容には何が表示されていますか?
sui_15

2022/02/21 01:16

MainTest > test() FAILED org.mybatis.spring.MyBatisSystemException at MainTest.java:20 Caused by: org.apache.ibatis.reflection.ReflectionException at MainTest.java:20 上記の部分しか書いてありません。 20列の部分は foodsMapper.findByTypeAndPriceUsingClassの部分にあたります。
PlugOut777

2022/02/21 02:05

明確な回答を持ち合わせていないので、怪しい範囲の羅列になってしまいますが - FoodsParamの引数無しコンストラクタのスコープがpublicではない - @Mapperの設定が不足している - @Autowiredに必要な何かが不足している この辺りが怪しいかと思います。
sui_15

2022/02/21 02:31

上記のことを踏まえ、いろいろ試してみます。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問