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

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

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

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

Q&A

1回答

352閲覧

配列の値取得エラーを解決したい

lop000p

総合スコア29

Java

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

0グッド

2クリップ

投稿2022/01/08 11:17

編集2022/01/08 12:12

java

1package com.rad_and_men.player; 2 3import com.rad_and_men.constraint.MessageConstraint; 4import com.rad_and_men.util.PropertiesUtil; 5 6public class Player implements MessageConstraint{ 7 private int turn; 8 private int count = 5; 9 private String name; 10 Object[] dice = new Object[3]; 11 12 public Player() { 13 14 } 15 16public void setDice(Object[] dice) { 17 this.dice = dice; 18 } 19 20 public Object[] getDice() { 21 return dice; 22 } 23} 24 25if (players[i].getTurn() == turnNo) { 26 Object dice[] = new Object[3]; 27 dice[0] = players[i].getDice(); 28 List<Object> diceList = Arrays.asList(dice); 29 for (int k = 0; k < diceList.size(); k++) { 30 Object one = diceList.get(k); 31 int oneDice = Integer.parseInt(one); 32 setBoardOne(one); 33 } 34// int one = diceList.getDice(); 35// int two = dice[1]; 36// int three = dice[2]; 37 disp.showBoardThree(); 38 setBoardOne(one); 39 setBoardTwo(two); 40 setBoardThree(three); 41 disp.showBoardThree(); 42 }

PlayerクラスのObject[] dice = new Object[3];を違うクラスで呼び出して、
dice のインデックス0番目をint oneに代入し、
インデックス1番目をint twoに代入し、
インデックス2番目をint threeに代入したいのですが、取得でらーが出てしまいます。

エラー
one を変数に解決できません

ダイスはObject型なのですが、Object型をint変数に代入する方法はありますでしょうか?
配列を取得し、インデックスでした値を取り出したいのですが、
どのように取得できるか教えていただきたいです。

修正

Java

1for (int i = 0; i < players.length; i++) { 2 turnNo = 0; 3 if (players[i].getTurn() == turnNo) { 4 Object dice[] = new Object[3]; 5 List<Object> diceList = Arrays.asList(dice); 6 disp.showBoardThree(); 7 for (int k = 0; k < diceList.size(); k++) { 8 int one = (int) diceList.get(k); 9 setBoardOne(one); 10 } 11 disp.showBoardThree(); 12 13 }

上記に変更後エラーは消えましたが、
実行したら、[Ljava.lang.Object;@6f496d9f
[Ljava.lang.Object;@723279cf
[Ljava.lang.Object;@10f87f48
と表示されてしまいました。
importの追加とArrays.toStringを設定してみましたら
List<Object> diceList = Arrays.toString(dice);
型の不一致とエラーが出てしまいました。
なにかいい解決方法はありますでしょうか?

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

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

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

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

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

m.ts10806

2022/01/08 11:18

そもそもこのコードそのままだとまともに動かないと思うのですが
lop000p

2022/01/08 12:13

すみません、一部のみ載せました。。
dodox86

2022/01/08 13:29

コードが中途半端過ぎてやりたいことが閲覧した者に伝わらないようです。コンパイルエラーを取るための修正をするのではなく、意図を反映した正しいコードにするよう努めましょう。
guest

回答1

0

Object one ...

int じゃなくて、Objectとして定義してありますけど。

投稿2022/01/08 11:26

y_waiwai

総合スコア87749

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

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

lop000p

2022/01/08 12:14

ありがとうございます。int oneで修正したらエラーは消えましたが、表示が[Ljava.lang.Object;@6f496d9fのように表示されてしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問