Java 无法进行非静态引用

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

用户输入猜测,最初是字符串,现在我试图将该字符串转换为整数数组,错误是我无法进行非静态引用。我不想让“userGuess”变量是静态的,那么还有其他选项吗

球员级别 发动机等级
只需创建另一个成员变量,就像其他变量一样

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;
}