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

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

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

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

Q&A

2回答

436閲覧

Java Listからクラスを取得

hata3

総合スコア0

Java

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

0グッド

1クリップ

投稿2022/08/16 17:02

前提

(例)
TypeScriptで●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

実現したいこと

Listに格納したクラスを取得したい

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

Main.java:53: error: illegal start of expression
BreadClass breadItem = <BreadClass>breadList.get(0);

該当のソースコード

public class Main {
public static void main(String[] args) {
//Input情報取得
Scanner sc = new Scanner(System.in);

//商品情報を取得 //1行目:パンの種類数、クエリ数 int typeCnt = sc.nextInt(); int qeryCtn = sc.nextInt(); //パン情報をリストに格納 //Input:金額・個数 List<BreadClass> breadList = new ArrayList<>(); for (int i = 0; i < typeCnt; i++) { BreadClass breadItem = new BreadClass(); //breadItem.setTypeCode(i+1); breadItem.setUnitPrice(Long.parseLong(sc.next())); breadItem.setQuantity(sc.nextInt()); breadList.add(breadItem); } //クエリの沿って処理実行 //Input:クエリ・商品(N) for (int i = 0; i < qeryCtn; i++) { String[] line = sc.nextLine().split(" ");; switch(line[0]){ case "buy": BreadBuy(line, breadList); break; } } } /* パン購入処理 */ public static void BreadBuy (String[] line, List breadList){ Long total = 0L; int size = line.length; System.out.println(size); for (int i = 0; i < size-1; i++) { //購入数を取得 int test = Integer.parseInt(line[i+1]); //パン情報を取得 BreadClass breadItem = new BreadClass(); //ここでエラー BreadClass breadItem = <BreadClass>breadList.get(0); } }

}

/*
パンオブジェクト
*/
class BreadClass {

//単価 Long unitPrice = 0L; public Long getUnitPrice(){ return this.unitPrice; } public void setUnitPrice(Long unitPrice){ this.unitPrice = unitPrice; } //数量 int quantity = 0; public int getQuantity(){ return this.quantity; } public void setQuantity(int quantity){ this.quantity = quantity; }

}

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

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

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

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

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

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

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

jimbe

2022/08/16 19:05

先ずはクラスとオブジェクトの違いを認識された方が良いように思います。 違うものをテキトウに表現されては、何の事を言っているのか分からなくなります。

回答2

0

こんばんは。もう解消されたでしょうか?
この回答がお役に立てるかはわかりませんが・・。
取り急ぎ発生しているエラーは下記コードで解消できます。
BreadBuyメソッドを修正しました。
修正点はコメントで追記しています。

/* パン購入処理 */ //修正前 // public static void BreadBuy(String[] line, List breadList) { //修正後(引数の宣言を修正) public static void BreadBuy(String[] line, List<BreadClass> breadList) { Long total = 0L; int size = line.length; System.out.println(size); for (int i = 0; i < size - 1; i++) { //購入数を取得 int test = Integer.parseInt(line[i + 1]); //パン情報を取得 BreadClass breadItem = new BreadClass(); //ここでエラー:修正前 // BreadClass breadItem = <BreadClass>breadList.get(0); //修正後(あらかじめ生成されたインスタンスを使用するので型宣言を除去、              引数の修正に合わせてキャストを除去) breadItem = breadList.get(0); } }

breadItemはfor文内で使用する予定なのでしょうか?
外で使う場合はスコープに注意してください。

投稿2022/08/18 14:48

enpitu

総合スコア16

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

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

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

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

0

いまjavaないので試せないけど、<BreadClass>breadList.get(0); これは多分間違ってる

Java

1public static void BreadBuy (String[] line, List<BreadClass> breadList){ 2 Long total = 0L; 3 int size = line.length; 4 System.out.println(size); 5 for (int i = 0; i < size-1; i++) { 6 7 //購入数を取得 8 int test = Integer.parseInt(line[i+1]); 9 10 //パン情報を取得 11 BreadClass breadItem = new BreadClass(); 12 //ここでエラー 13 BreadClass breadItem = breadList.get(0); 14 } 15}

BreadBuyを上のコードにしてみて、あとたぶん質問者多分やりたいのはこれ
(BreadClass)breadList.get(0);

List<BreadClass> これはこのリストに保存されてるのはBreadClassという意味
(BreadClass)breadList.get(0); これはこのオブジェクトはBreadClassというものだとコンパイラに教えてるです。

投稿2022/08/16 19:56

shishin

総合スコア73

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

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

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

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.69%

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

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

質問する

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

Java

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