我对Java很陌生(我在Stackoverflow上也提出了第一个问题),现在我正在努力将如何将方法中定义的变量值传递给另一个。
我已经对全局变量,ArrayList,HashMap等进行了多次搜索,但这似乎是我搜索的唯一内容( Global variables in Java)让我对如何进行更加困惑。
我尝试使用ArrayList,但它无法正常工作 - 而且我不知道我是否可以将它用于我想要的日子......
这是我的代码:
public static void creationGuilde(String[] args, Player player, String playerName)
{
String nomGuilde = args[2];
String message1 = "Votre nouvelle guilde se nommera " + nomGuilde + ".";
TextComponent confirmer = new TextComponent("Cliquez ici pour confirmer");
TextComponent annuler = new TextComponent("cliquez ici pour annuler");
String message2 = confirmer + "OU" + annuler + ".";
player.sendMessage(message1);
player.sendMessage(message2);
confirmer.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/creationGuildeConfirmer"));
annuler.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/creationGuildeAnnuler"));
}
private void onPreCreationGuildeCommand(PlayerCommandPreprocessEvent event)
{
if (event.getMessage().equals("creationGuildeConfirmer"))
{
String guilde = CommandeGuilde.creationGuilde(nomGuilde);
event.getPlayer().sendMessage("Félicitations! Vous venez de créer la guilde " +guilde); // <-- Here, trying to get the value of 'guilde' in the 'creationGuilde' method...
}
}
我想要做的是来自&#34; onPreCreationGuildeCommand&#34;方法,我想获得&#39; nomGuilde&#39;来自&#34; creationGuilde&#34;把它放在我最后一个sendMessage上的方法。
我希望我的问题足够明确。感谢您帮助我。
答案 0 :(得分:0)
您可以在方法,全局变量之外定义变量nonGuilde。当您定义全局变量时,您可以“写”或从此类的所有方法中获取此变量。 第二种解决方案是从creationGuilde方法返回nonGuilde。
答案 1 :(得分:0)
最简单且可能最好的解决方案是将nonGuilde定义为全局变量 代码应如下所示:
class YourClassName{
//Must be null
//otherwise if you call onPreCreationGuildeCommand before creationGuilde
//you would get error because variable hasn't been initialized
private String nomGuilde = null;
public static void creationGuilde(String[] args, Player player, String playerName){
//set the value
//value will persist outside the method because variable is global
nomGuilde = args[2];
}
private void onPreCreationGuildeCommand(PlayerCommandPreprocessEvent event){
// Here you can do anything with variable, for example:
System.out.println(nomGuilde);
}
}
我对你的建议是阅读一些关于变量及其范围(特定变量可见的代码块)及其生命周期(变量在内存中存在多长时间)的一些内容。