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

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

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

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

Q&A

解決済

4回答

1065閲覧

eclipseのエラーの解決をしたいです。

zaki777oka

総合スコア31

Java

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

0グッド

0クリップ

投稿2018/08/09 02:10

package jp.co.bbreak.sokusen._2._1;

import java.math.BigDecimal;

public class Detail {
public void setItemName(String string) {

}
public void setAmount(BigDecimal bigDecimal) {

}
public Object getItemName() {

return getItemName();

}
public Object getAmount() {

return getAmount();

}

//セッタ/ゲッタは省略
}

これを実行すると以下のようなエラーが出ます。

at jp.co.bbreak.sokusen._2._1.Detail.getItemName(Detail.java:16)
at jp.co.bbreak.sokusen._2._1.Detail.getItemName(Detail.java:16)
at jp.co.bbreak.sokusen._2._1.Detail.getItemName(Detail.java:16)

解決方法を教えていただきたいです。

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

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

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

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

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

m.ts10806

2018/08/09 02:16 編集

タイトルには要件を書いて下さい。 https://teratail.com/help/question-tips#questionTips3-1 タイトルから質問内容が想像できないもの、タイトルと質問内容が食い違っているものはスムーズな回答を得られなくなります。また、このままでは丸投げ質問(非推奨質問の代表格です)となってしまうので、自身が調べていく中でやってみたコードなどをご提示ください。その上で「何が」「どう」分からなかったのか記載してください。 https://teratail.com/help/question-tips
m.ts10806

2018/08/09 02:16

上記、連投された他の丸投げ質問についても同様に対応してください。おそらくこのままですとどの質問にも回答がのぞめません。
guest

回答4

0

とても分かりやすかったです。
ありがとうございます。

投稿2018/08/09 03:12

zaki777oka

総合スコア31

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

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

m.ts10806

2018/08/09 04:50

「質問するときのヒント」を熟読してください。 ひとまず回答として投稿するのは間違いです。それぞれの回答にコメントをつけてください。
guest

0

ベストアンサー

public Object getItemName() { return getItemName(); }

上のように定義されているgetItemName (1回目)が呼び出されると、
・getItemName (1回目)のreturnでgetItemName(2回目)が呼び出される
・getItemName (2回目)のreturnでgetItemName(3回目)が呼び出される
・getItemName (3回目)のreturnでgetItemName(4回目)が呼び出される
...
というように自己呼び出しを繰り返して永久に戻ってきません。

コンパイラが、このような無限ループになることを検出して出したのが質問に書かれているエラーです。
(Detail.java:16)は、エラーが発生したコードの位置(質問に書かれたコードの16行目)を示していて、その行は getItemName の定義の最後 ("}"の行)にあたります。

===
質問者が何をしたいのかが分かりませんので、解決方法のアドバイスはできかねますが、
returnでgetItemNameを呼び出すのではなく、コードで省略されている(Nameの内容を返す?)ゲッタを呼び出すところなのかなぁという感じは受けます。

投稿2018/08/09 02:35

coco_bauer

総合スコア6915

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

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

0

getItemName()の中でgetItemName()を呼び出してるのが原因では?

java

1public Object getItemName() { 2 return getItemName(); 3}

投稿2018/08/09 02:27

KaiShoya

総合スコア551

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

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

0

あ、この質問のDetailクラスがこれですか。
言ったとおり、getItemNameの中でgetItemNameを呼び出しており、無限再起となっているためスタックオーバーフローを起こしています。

投稿2018/08/09 02:22

swordone

総合スコア20651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問