2015-10-14 107 views
0

我在ArrayList中覆盖问题。我添加项目Java列表覆盖

public static List<DropItem> dropItemkow = new ArrayList<DropItem>(); 

public static void loadConfig(){ 
    DropItem diax = new DropItem("Diament", Material.DIAMOND, 30.0, Material.IRON_PICKAXE, 16, 12); 
    dropItemkow.add(diax); 
    DropItem zloto = new DropItem("Zloto", Material.GOLD_INGOT, 4.0, Material.IRON_PICKAXE, 34, 11); 
    dropItemkow.add(zloto); 
    DropItem zelazo = new DropItem("Zelazo", Material.IRON_INGOT, 6.0, Material.STONE_PICKAXE, 68, 10); 
    dropItemkow.add(zelazo); 
} 

而且我试图从这个代码查看此列表:

 for(int i = 0; i < DropStorage.dropItemkow.size();i++){ 
     p.sendMessage("§cID: " +i + " NAZWA: " + DropStorage.dropItemkow.get(i).getName()); 
    } 

的getName()返回应该在对象的第一个字符串( “DIAMENT,Zloto,Zelazo”) 。但这种打印:

ID: 0 NAME: Zelazo ID: 1 NAME: Zelazo ID: 2 NAME: Zelazo

但我想打印 “DIAMENT,Zloto,Zelazo” 不 “Zelazo,Zelazo,Zelazo”。

+1

我们能看到的get方法的名称? – jthort

+0

你能告诉我们你的DropItem构造函数吗?您可能不会正确设置DropItem名称 – Kerooker

+0

显示的代码看起来不错,这表明问题出现在我们还没有看到的代码中。你可以包含DropItem类吗?可能你正在使用名称的静态/类属性。 – dave

回答

0

您当前的代码看起来不错,我想问题是DropItem class

private static String name; 
     ^this cause the name same