【发布时间】:2021-05-09 21:26:21
【问题描述】:
首先;感谢您阅读并帮助我,我是 Java 新手,但遇到了问题。
我在一个特定的类中创建了实例变量。在此之后,我创建此类的新实例/对象并指定变量的新输入。问题是:当我运行代码并尝试它是否工作时,它不工作。似乎新变量没有传递给正在实例化的类。 (当我左键单击翡翠块时,会出现一个空字符串)
我已经尝试过的:
- 创建一个 setter 方法来设置变量。
- 使用构造函数
我想创建一个实例的类:
package rico.polkadot;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
public class InstanceClass implements Listener {
public String name;
@EventHandler
public void onInteract(PlayerInteractEvent e) {
Action action = e.getAction();
Player p = e.getPlayer();
Block b = e.getClickedBlock();
if(action.equals(Action.LEFT_CLICK_BLOCK)) {
if(b.getType().equals(Material.EMERALD_BLOCK)) {
p.sendMessage(name);
}
}
}
}
主类:
package rico.polkadot;
import java.util.List;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(new InstanceClass(this),this);
InstanceClass test = new InstanceClass();{
test.name = "lol";
}
}
}
【问题讨论】:
-
“我想创建一个实例”,你正在创建它的一个实例,一个叫做 test。
-
设置变量好像没有问题。您有一个公共变量,并且在创建名为 test 的实例后设置它
-
@Stultuske 哦,对不起。我创建了一个名称为 test 但字符串变量名称更改为“lol”的实例。仍然,当我运行代码时它不起作用..(当我打破翡翠块时没有弹出带有字符串“lol”的消息)
标签: java class object bukkit instance-variables