Java 尝试复制对象时非常奇怪的NPE
我试图复制一个对象,同时将一个参数传递给用于复制的方法。在我尝试复制对象后,在对象的构造函数中,参数变为null 这是我试图复制的类:Java 尝试复制对象时非常奇怪的NPE,java,object,copy,clone,Java,Object,Copy,Clone,我试图复制一个对象,同时将一个参数传递给用于复制的方法。在我尝试复制对象后,在对象的构造函数中,参数变为null 这是我试图复制的类: /** * Represents the extra health perk */ public class ArrowRegen implements Perk { private int id = 0; private double chance = 0.15; private int level = 0; priv
/**
* Represents the extra health perk
*/
public class ArrowRegen implements Perk
{
private int id = 0;
private double chance = 0.15;
private int level = 0;
private int price = 1000;
private int arrowGain = 0;
private GamePlayer ourPlayer;
public ArrowRegen(){}
public ArrowRegen(GamePlayer ourPlayer)
{
this.ourPlayer = ourPlayer;
if(this.ourPlayer == null)
aa.debug("its null");
}
@Override
public Perk getThisPerk(GamePlayer player)
{
aa.debug("returning an arrow regen");
if(player == null)
aa.debug("player is null? somehow?");
return new ArrowRegen(ourPlayer);
}
}
- 在构造函数中的“itsnull”注释处的点之前,没有任何内容是空的*李>
player.addActivePerks(PerkEngine.getPerk(1).getThisPerk(player));
(玩家是游戏玩家对象)
这是发动机钻头:
/**
* Gets a perk by it's ID
* @param id The Perk's ID
* @return The Perk with the specified ID
*/
public static Perk getPerk(int id)
{
for(Perk perk : perks)
{
if(perk.getID() == id)
{
return perk;
}
}
// This will never return null
return null;
}
编辑:
我刚刚意识到我的错误是在“Gethispark”方法中。返回新对象时,我传入了错误的变量。我刚刚意识到我的错误在“GetThispark”方法中。返回新对象时,传入了错误的变量