2017-11-20 14 views
-3

私はかなり新しいjavaですが、最近ArrayListをオブジェクトにキャストする方法を学びました。ArrayListの引数がプログラマが指定した戻り値にキャストしない

ArrayListの引数(int型、 フロート)には適用されません

メソッドセット(int型、GenericMissile)タイプ:私の現在の私は、ArrayListに変数を追加している問題があります

私はこれを、多くの方法で、setLocationX()メソッドの戻り値をGenericMissile setLocationX()に変更してから、グローバル変数をGenericMissileにキャストして、結果を修正しないようにしました。

私の主な質問は、ArrayList引数で2番目のクラスファイルのArrayListを作成するにはどうすればいいですか?

さらにこの質問をするには、クラスファイルをいずれかの戻り値にキャストする方法がありますか?

public class GenericMissile { 
    float currentX; 

    float setLocationX() {   
     currentX = (float) Math.ceil(Math.random() * 801);  
     return currentX; 
    } 
} 

や他のクラスファイルで

、私が持っている:

import java.util.ArrayList; 

public class GameManager { 
    ArrayList<GenericMissile> allM; 

    public static void main(String[] args) {  
     GameManager obj = new GameManager(); 
     obj.getInfo(); 
    } 

    void getInfo() {  
     allM = new ArrayList<>(); 
     GenericMissile build = new GenericMissile(); 

     allm.set(0,build.setLocationX()); 
    } 
} 
+0

あなたは正確にここで行うには何をしようとしている。

allM = new ArrayList<>(); GenericMissile build = new GenericMissile(); build.setLocationX(); allM.set(0, build); 

また少しsetLocationXを変更することでbuild.setLocationX()GenericMissileリターン自体を作ることができますか?あなたはList of GenericMissilesを持っていますが、それにフロートを追加しようとします。それはうまくいかないし、私はあなたの本来の意図ではないと思う。 –

+0

あなたのArrayListは 'GenericMissile'型のオブジェクトを期待していますが、代わりに場所を挿入しようとします。なぜこれが動作すると思いますか? – Tom

+0

あなたの 'ArrayList'は' GenericMissile'型にバインドされているので、それだけを受け入れることができます。ここに 'float'を挿入しようとしています:' allm.set(0、build.setLocationX()); ' – Strikegently

答えて

0

GenericMissile#setLocationX()戻りfloat以下

は、私は2番目のクラスで実行しているオブジェクトが含まれている私の最初のクラスですあなたのArrayListは GenericMissileの型にバインドされているので、間違った型にしています。もしかして:

GenericMissile setLocationX(){ 
    float setLocationX(){ 
    currentX = (float) Math.ceil(Math.random()*801); 
    return this; 
} 
関連する問題