Java 无法进行非静态引用
用户输入猜测,最初是字符串,现在我试图将该字符串转换为整数数组,错误是我无法进行非静态引用。我不想让“userGuess”变量是静态的,那么还有其他选项吗 球员级别 发动机等级Java 无法进行非静态引用,java,arrays,string,methods,int,Java,Arrays,String,Methods,Int,用户输入猜测,最初是字符串,现在我试图将该字符串转换为整数数组,错误是我无法进行非静态引用。我不想让“userGuess”变量是静态的,那么还有其他选项吗 球员级别 发动机等级 只需创建另一个成员变量,就像其他变量一样 public String guessConvert; 并在构造函数中设置该变量 public Engine(Player player) { guessConvert = player.userGuess; } 或在Setter方法中: public void
只需创建另一个成员变量,就像其他变量一样
public String guessConvert;
并在构造函数中设置该变量
public Engine(Player player) {
guessConvert = player.userGuess;
}
或在Setter方法中:
public void SetGuessConvert(Player player)
{
guessConvert = player.userGuess;
}
如果需要在代码中的其他地方引用该
Player
对象,您可能希望将该对象的引用作为成员变量保存。引擎对象应具有对Player对象的引用并且应该对它指向的Player对象调用getUserGuess() 似乎您有一个类
Player
,它有一个字段userGuess
,您说您不想使其成为静态的。如果您不想将其设置为静态,这意味着userGuess
是属于每个Player
对象的字段;因此,要访问该字段,必须有一个播放器对象才能访问该字段Player.userGuess
不起作用。它必须是p.userGuess
其中p
是某个Player
对象
但是,如果不知道您希望在哪里创建播放器
对象,以及引擎
将如何找到该对象,我将无法进一步提供帮助 您可以完全删除userGuess字符串;这似乎没有必要。
然后创建一个Player对象并执行guessConvert=pObject.askForGuess()代码>请发布玩家
类。数组猜测是否仅由逗号分隔的整数组成?@ShreyosAdikari是的,先生!我被告知在我的类中不要包含构造函数。这是唯一的方法吗?然后通过Setter方法传递Player对象,或者从引擎中构造Player对象。没有球员你不能比赛,谢谢!这似乎奏效了。虽然现在我在另一行得到一个空错误。我应该问一个新问题吗?堆栈溢出不是调试器。找出您引用的变量为null的原因。提示:您可能尚未为其指定对象。我添加了player类。例如,用户猜测“323”为字符串。这是从球员类。现在我需要将字符串转换成一个整数数组,3,2,3。
public Engine(Player player) {
guessConvert = player.userGuess;
}
public void SetGuessConvert(Player player)
{
guessConvert = player.userGuess;
}