Java 如何在不启动方法的情况下在变量中设置属性?
我想在不输入方法的情况下访问变量,并且想知道这是否可行 我试过:Java 如何在不启动方法的情况下在变量中设置属性?,java,minecraft,bukkit,Java,Minecraft,Bukkit,我想在不输入方法的情况下访问变量,并且想知道这是否可行 我试过: public class MyClass{ public static ItemStack myItem = new ItemStack(Material.BOOK); myItem.addEnchantment(Enchantment.ARROW_DAMAGE, 1); } 但是我相信如果不启动一个方法(例如main方法),这是不可能的 还有什么办法吗?也许这会解决问题: public class MyClas
public class MyClass{
public static ItemStack myItem = new ItemStack(Material.BOOK);
myItem.addEnchantment(Enchantment.ARROW_DAMAGE, 1);
}
但是我相信如果不启动一个方法(例如main方法),这是不可能的
还有什么办法吗?也许这会解决问题:
public class MyClass{
public static ItemStack myItem;
static
{
myItem = new ItemStack(Material.BOOK);
myItem.addEnchantment(Enchantment.ARROW_DAMAGE, 1);
}
}
阅读有关静态初始化的信息: 如果您的课程不是期末考试,这也会起作用:
public class MyClass{
public static final ItemStack myItem = new ItemStack(Material.BOOK) {
{
addEnchantment(Enchantment.ARROW_DAMAGE, 1);
}
};
}
不,这在Java中是不可能的。在Java中,在任何方法之外都有代码是无效的。还值得注意的是,第二种方法定义了匿名类
MyClass$1
,这对于大多数用例来说都是次优的。次优?对对于大多数用例。。。也许,也许。在大多数用例中,它将是先发制人的优化。
public class MyClass{
public static final ItemStack myItem = new ItemStack(Material.BOOK) {
{
addEnchantment(Enchantment.ARROW_DAMAGE, 1);
}
};
}