ArrayList参数未转换为程序员指定的返回值

时间:2017-11-20 16:23:01

标签: java arraylist

我对java很新,最近学会了如何将ArrayList转换为对象。我在向ArrayList添加变量时的当前问题是:

  

类型中的方法set(int,GenericMissile)    ArrayList不适用于参数(int,    浮动)

我试图以多种方式纠正这个问题,从更改setLocationX()方法的返回值到GenericMissile setLocationX()到将全局变量转换为GenericMissile,没有结果。

我的主要问题是:如何使第二个类文件中的ArrayList与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());
    }
}

1 个答案:

答案 0 :(得分:0)

GenericMissile#setLocationX()返回float,并且您的ArrayList绑定为GenericMissile,因此您输入的类型错误。你的意思是:

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

您也可以GenericMissile稍稍修改build.setLocationX(),使setLocationXGenericMissile setLocationX(){ float setLocationX(){ currentX = (float) Math.ceil(Math.random()*801); return this; } 上自行返回:

for (int i = 0; i < 10; i++)
{
    System.out.println(i + ", "data[i]);
}