如何在不启动方法的情况下在变量中设置属性?

时间:2014-11-22 16:53:37

标签: java minecraft bukkit

我想在不输入方法的情况下访问该变量,并想知道这是否可能。

我试过了:

public class MyClass{
    public static ItemStack myItem = new ItemStack(Material.BOOK);
    myItem.addEnchantment(Enchantment.ARROW_DAMAGE, 1);
}

但我相信如果没有启动方法(例如主方法),这是不可能的

无论如何都要这样做?

2 个答案:

答案 0 :(得分:2)

了解静态初始化:Static Initialization Blocks

public class MyClass{
    public static final ItemStack myItem = new ItemStack(Material.BOOK);
    static {
       myItem.addEnchantment(Enchantment.ARROW_DAMAGE, 1);
    }
}

如果你的课程不是最终的,那么这也会有效:

public class MyClass{
    public static final ItemStack myItem = new ItemStack(Material.BOOK) {

        {
            addEnchantment(Enchantment.ARROW_DAMAGE, 1);
        }

    };
}

答案 1 :(得分:0)

也许这会成功:

public class MyClass{
public static ItemStack myItem;
static
{ 
myItem = new ItemStack(Material.BOOK);
myItem.addEnchantment(Enchantment.ARROW_DAMAGE, 1);
}
}