A.classでB.classのarraylistを作成し
Cクラスのオブジェクトを何個もarraylistに保存しているんですけど
そのarraylistをbクラスで使いたいんですけど
うまくいきません
例とエラー文を載せますので、教えてください
例
public class A{
int i=0;
int b=0;
public static void main(String[] args){
ArrayList<B> strs=new ArrayList<B>(0);
for(b=0;b<30;b++){
B b =new B(); //ここは何回も作ってます
strs.add(b,i);
i++;
}
}
public ArrayList get(){
return strs;
}
}
class C {
A a;
static count=0;
public void syutoku(SimpleTrajectoryViewer si){
this.a=a;
}
public void c(){
B b=new B();
ArrayList b =a.get();
B p=b.get(count);
count ++;
}
}
エラー文はクラスの
ArrayList b =a.get();の部分で
互換性のない型
期待値 B
検出値 object
と出ています
解決策教えてください
全てのプログラムを書いてるわけではありませんので
おそらく関係のあるだろうってところを書きましたので
わかりづらかったらすみません
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
>ts.get()で
>Test1のstrsを作成できると思っていたので
Test1のstrsと、Test1.main(String[])メソッド内のstrs、は変数名が同じというだけの別物。
No.7
- 回答日時:
> ArrayList<Test2> b=ts.get();
そこでエラーになるのはTest1のget()メソッドの返値型が単なるArrayListと宣言されているからです。
get()の返値型をArrayList<Test2>に変えてください。
この回答への補足
Test2.javaを以下のように変えて表現してみたら
返却地はnullになってるみたいなんですが
どうしてでしょうか?
import java.awt.*;
import java.io.*;
import java.util.ArrayList;
class Testc{
// 定数をクラス変数として定義
static double x;
static double y;
int arraycount=0;
public void open(){
Test1 ts=new Test1();
ArrayList<Test2> b =ts.get();
Test2 a=b.get(0);
x=a.x; y=a.y;
System.out.println(""+x+"");
}
}
No.5
- 回答日時:
> javacでコンパイルしてるからなのかエラーは一つです
それはあなたが持っている本当のコードでの話ですよね。
あなたが「おそらく関係のあるだろうってところ」だけを抜き出したこの質問に書かれたコードのコンパイル結果は次の通りです。
A.java:24: エラー: <identifier>がありません
上記のエラーの出ている
static count=0;
という行に int を補い、冒頭に
import java.util.ArrayList;
class B {}
class SimpleTrajectoryViewer {};
を補った結果が以下の通りです。
A.java:10: エラー: staticでない変数 bをstaticコンテキストから参照することはできません
for(b=0;b<30;b++){
A.java:10: エラー: staticでない変数 bをstaticコンテキストから参照することはできません
for(b=0;b<30;b++){
A.java:10: エラー: staticでない変数 bをstaticコンテキストから参照することはできません
for(b=0;b<30;b++){
A.java:13: エラー: staticでない変数 iをstaticコンテキストから参照することはできません
strs.add(b,i);
A.java:13: エラー: addに適切なメソッドが見つかりません(B,int)
strs.add(b,i);
メソッド ArrayList.add(int,B)は使用できません
(実引数Bはメソッド呼出変換によってintに変換できません)
メソッド ArrayList.add(B)は使用できません
(実引数リストと仮引数リストの長さが異なります)
A.java:14: エラー: staticでない変数 iをstaticコンテキストから参照することはできません
i++;
A.java:19: エラー: シンボルを見つけられません
return strs;
シンボル: 変数 strs
場所: クラス A
A.java:34: エラー: 変数 bはすでにメソッド c()で定義されています
ArrayList b =a.get();
A.java:35: エラー: シンボルを見つけられません
B p=b.get(count);
シンボル: メソッド get(int)
場所: タイプBの変数 b
つまり、あなたが提示のコードではあなたが質問したいエラーを再現することができません。
だから私は「ソースを全部書いてください」と書いたのです。
とはいえ、どうやらあなたが抱えているコードは何らかのシステムの一部のようですので(SimpleTrajectoryViewer というクラス名からすると何らかの軌道制御か軌道シミュレーションですね)、量的にも守秘義務的にも全部出すわけにはいかないのでしょう。
ならば、あなたが今抱えているコードとは無関係なソースコードを新たに作って、コマンドラインから javac でコンパイルしてあなたが悩んでいるエラーだけを再現できるようにしてから、その新しいコードを書いてください。
この回答への補足
はい
よくわからないプログラムを掲示してしまい
すみませんでした
コンパイルが一つしかエラーが無いプログラムを書いてみました
同じ処理をしてると思います
あまり本件とは関係ないですけど
test1からtest2のarraylistを作り、それをtestcで呼び出そうとしています
どこがおかしいでしょうか?
コンマ区切りに数字,数字で区切って書かれているtxtファイルを読み込んで
test2のxとyに入れる処理をしています
プログラム Test1.java
ーーーーーーーーーーーーーーーーーーーーーーー
import java.util.StringTokenizer;
import java.io.*;
import java.util.ArrayList;
class Test1{
ArrayList strs;
public static void main(String[] args){
int b=0;
ArrayList<Test2> strs=new ArrayList<Test2>(0);
try{
BufferedReader br=new BufferedReader(new FileReader(args[0]));
String str;
while((str=br.readLine())!=null){
StringTokenizer st = new StringTokenizer(str, ",");
double data[] = new double [st.countTokens()];
int i = 0;
int sum = 0;
while (st.hasMoreTokens())
{
data[i] = Double.parseDouble(st.nextToken());
sum += data[i];
i++;
}
Test2 ts =new Test2();
ts.set(data[0],data[1]);
strs.add(b,ts);
b++;
}
br.close();
}
catch(IOException e){
System.out.println(" error");
}
Testc ts= new Testc();
ts.open();
}
public ArrayList get(){
return strs;
}
}
Test2.java
--------------------------------------------
import java.awt.*;
import java.io.*;
import java.util.ArrayList;
class Test2{
// 定数をクラス変数として定義
double x;
double y;
public void set (double i,double b){
x=i;
y=b;
}
}
Testc.java
--------------------------------------------
import java.awt.*;
import java.io.*;
import java.util.ArrayList;
class Testc{
// 定数をクラス変数として定義
static double x;
static double y;
int arraycount=0;
public void open(){
Test1 ts=new Test1();
ArrayList<Test2> b =ts.get();
}
}
エラー
---------------------------------------------
testcについてです
無検査変換
ArrayList<Test2> b=ts.get();
期待値 ArrayList<Test2>
検出地 ArrayList
No.4
- 回答日時:
無変換検査については以下のURLが参考になります。
http://www.javaroad.jp/bbs/answer.jsp?q_id=20091 …
#期待するクラス以外はArrayStoreException例外として処理
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java final 1 2022/06/10 22:49
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java Java 配列<選挙> 4 2023/07/31 15:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
for,while文とreturn
-
Javaプログラムのエラー
-
javaのエラーに関する質問 よ...
-
JSON形式でsocket通信するには
-
Javaのエラーについてです
-
JDK6なのにGenericsでエラー「...
-
コンパイル時にエラーが出てし...
-
シンボルが見つかりませんとい...
-
java1.5 でハッシュマップの使い方
-
Eclipseのアンインストールの仕方
-
マイクラjavaでForgeを入れたい...
-
html上で、バッチやexeファイル...
-
Eclipse 動的プロジェクトで404...
-
Eclipse(JAVA)のデバッグで他...
-
Javaをインストールしたんです...
-
RPA(PowerAutomate)の実装について
-
ActivePerlをインストールしよ...
-
eclipse内のjavaファイルをUSB...
-
SVFの設定について:クラスパス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
シンボルが見つかりませんとい...
-
tomcat起動時エラー
-
エラー:org.springframeworkが...
-
Javaのエラーについてです
-
eclipseをバージョンアップした...
-
eclipseでのsvn認証エラー回避方法
-
タグが閉じてないというエラー...
-
Eclipseで次のエラー箇所にジャ...
-
JBossについて
-
構文エラーのやり直しについて
-
Eclipseの環境について
-
JSP NullPointerException
-
javaw.exeプロセスが正常起動し...
-
JSP内でString型からint型に変...
-
マイクラでBuildcraftを入れる...
-
Win32コンソールアプリでnamesp...
-
JSPのコンパイル?
-
致命的: StandardServer.await:...
-
S2daoのSqlファイルでのDBア...
おすすめ情報