Java 如何调用已建立对象的列表?(爪哇)

Java 如何调用已建立对象的列表?(爪哇),java,arrays,object,null,Java,Arrays,Object,Null,我有我朋友为我们正在开发的游戏编写的代码(请原谅语言)。该代码旨在创建一个可能的武器列表,以便在整个游戏中拾取,但它始终返回空值。因此,我创建了一个arms.printalguns()方法,该方法打印了ever gun,然后在最底部打印“null”,而没有给我一个null点错误(因为它只返回名称)。因此,它似乎成功地按照预期建立了每个对象,但它创建了一个额外的null Gun对象,并且不能正确地返回数组中的任何对象 这是给空的 import java.util.*; public class S

我有我朋友为我们正在开发的游戏编写的代码(请原谅语言)。该代码旨在创建一个可能的武器列表,以便在整个游戏中拾取,但它始终返回空值。因此,我创建了一个arms.printalguns()方法,该方法打印了ever gun,然后在最底部打印“null”,而没有给我一个null点错误(因为它只返回名称)。因此,它似乎成功地按照预期建立了每个对象,但它创建了一个额外的null Gun对象,并且不能正确地返回数组中的任何对象

这是给空的

import java.util.*;
public class Soldier
{
    //BASE
    private ArrayList <Gun> gunsCarried;
    private GunsAvalible arms = new GunsAvalible();
    private Armor armor;
    private int size;
    private int bodyTempature;//1-10
    private int health = 100;
    private int numberOfSpecials;


public Soldier(int s, int g)
{
    Gun temp = arms.get(g);
    temp.getGunName();
    final int size = s;
}

public void takeDamage(int damage)
{
    health -= damage; 
}
}
最后是枪类

public class Gun
{
    private String name = ("");
    private int ammo = 0;
    private int clipSize = 0;
    private int clip = 0;
    private int power = 0;

    private Gun [] gunsArray = new Gun [20];
    private Gun [] gunsRankIIArray = new Gun [20];
    public Gun(String n, int cs, int p)
    {
        final int clipSize = cs;
    clip = 1 + (int)(3.14 *  5 * Math.random());
    power = p;
    name = n;
    if(clip > clipSize)
        clip = clipSize;
}

public void ammoPickup(int a)
{
    ammo += a;
}

public int fire()
{
    if(clip == 0)
    {
        reload();
        return 0;
    }
    clip--;
    int damage = 0;
    double critical = Math.random();
    if(critical < .5)
    {
        damage = (int)(power * (1+critical));
    }
    else 
    {
        damage = power * 2;
    }
    return damage;
}

public boolean reload()
{
    if(ammo > 0)
    {
        ammo -= clipSize;
        clip += clipSize;
        return true;
    }
    else
    {
        return false;
    }
}

public String getGunName()
{
    return name;
}
}
公共级枪支
{
私有字符串名称=(“”);
私人弹药单位=0;
private int clipSize=0;
私有int clip=0;
私有整数幂=0;
私家枪[]枪炮雷=新枪[20];
私家枪械[]枪械库存阵列=新枪械[20];
公共枪械(第n串、第C串、第p串)
{
最终int clipSize=cs;
clip=1+(int)(3.14*5*Math.random());
功率=p;
name=n;
如果(剪辑>剪辑)
clip=clipSize;
}
公共交通工具(INTA)
{
弹药+=a;
}
公共消防
{
如果(剪辑==0)
{
重新加载();
返回0;
}
剪辑--;
int损害=0;
双临界=数学随机();
如果(临界<.5)
{
伤害=(智力)(力量*(1+临界值));
}
其他的
{
损伤=功率*2;
}
退货损失;
}
公共布尔重载()
{
如果(弹药>0)
{
弹药-=clipSize;
剪辑+=剪辑;
返回true;
}
其他的
{
返回false;
}
}
公共字符串getGunName()
{
返回名称;
}
}
我很感激任何帮助或提示,因为我有点站不住脚了

我想你失踪了

gunsCarried = new ArrayList<>();
gunsCarried.add(temp);
gunsCarried=newarraylist();
炮击。添加(温度);

在你的士兵构造器中。

我现在删除了它,因为它一直给我零位错误,谢谢
gunsCarried = new ArrayList<>();
gunsCarried.add(temp);