Java:"cannot find symbol" 的 return 值

Java: "cannot find symbol" of a return value

我设置了一个我想要 returned 的变量,但它不起作用。 此方法的目标是创建一个随机名称生成器,可以根据需要进行扩展。 但它没有 return generatedFirstName 字符串。我一遍又一遍地翻阅我的笔记,但我找不到错误。这是该方法的代码:

public String weidenFirstName() {
    ArrayList<String> firstNames = new ArrayList<String>();
    firstNames.add("Ailfir");
    //long list of more ArrayList elements
    firstNames.add("Yann");

    Random firstNamesRandom = new Random();
    int r = firstNamesRandom.nextInt(firstNames.size());
    String generatedFirstName = firstNames.get(r);

    return generatedFirstName;
}

这是应该执行该方法的构造函数,然后将 generatedFirstName 保存为另一个变量,这样当另一个对象的代码 运行 时它不会被删除。

public NPC() {
    weidenFirstName();
    String FirstName = generatedFirstName;
}

我在设置 firstName 字符串的行中收到错误:java: cannot find symbol。并且 Inteliji 也将该变量标记为错误的来源。

解决方法很简单。该方法的 return 值不会存储在变量中。因此程序无法使用它。 要解决这个问题,我需要这样做:

 public NPC() {
        String FirstName = weidenFirstName();;
    }

或者这个:

 public NPC() {
        generatedFirstName = weidenFirstName();
        String FirstName = generatedFirstName;
    }

方法的return值是一个值。方法 weidenFirstName() 是一个字符串。还要在方法中将 generatedFirstName 设置为等于某物,然后让方法 return void 会起作用。

如果您想在 NPC() 方法中获取 weidenFirstName() 的值,您需要分配一个等于 weidenFirstName() 的 returned 值的新字符串,然后在 NPC() 方法中分配等于 String FirstName 的值。所以你需要在 NPC() 方法中这样做:

public void NPC() {
    String generatedFirstName = weidenFirstName();
    String FirstName = generatedFirstName;
}

在 NPC() 方法中,如果您只想分配值 FirstName 等于来自 weidenFirstName() 方法的随机值,那么您可以按照上面的方法进行操作。如果你想 return 从它的字符串值,那么你可以像下面那样做:

public String NPC() {
    String generatedFirstName= weidenFirstName();
    String FirstName = generatedFirstName;
    return FirstName;
}