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