如何将字符串值传递给 Java 中的另一个 class

How to pass a String value to another class in Java

目前,我 运行 在我的 Java 代码中遇到了问题。我对 Java 有点陌生,所以如果您记住这一点,我会很高兴。

我的问题是将字符串值从一个 class 传递到另一个

主要Class:

private static void charSurvey() 
{
    characterSurvey cSObj = new characterSurvey();
    cSObj.survey();

    System.out.println();
}

第二个:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;


public class characterSurvey 
{   
    public void survey(String character)
    {
        Scanner s = new Scanner(System.in);

        int smartChina = 0,smartAmerica = 0,dumbAmerica = 0;
        String answer;

        System.out.println("Are you good with girls?");
        System.out.println("y/n?");
        answer = s.nextLine();
        if(answer.equalsIgnoreCase("y"))
        {
            smartChina = smartChina - 3;
            smartAmerica = smartAmerica + 2;
            dumbAmerica = dumbAmerica + 4;
        }   
        //... 
        //ASKING SEVERAL OF ABOVE ^


        List<Integer> charSelect = new ArrayList<Integer>();
        charSelect.add(smartChina);
        charSelect.add(smartAmerica);
        charSelect.add(dumbAmerica);

        Collections.sort(charSelect);
        Collections.reverse(charSelect);

        int outcome = charSelect.get(0);

        if(smartChina == outcome)
        {
            character = "smartChina";
        }
        else if(smartAmerica == outcome)
        {
             character = "smartAmerica";
        }
        else if(dumbAmerica == outcome)
        {
            character = "dumbAmerica";
        }

        System.out.println(character);
        s.close();
        }
    }

当我调用第一个 class 时,我试图获取第二个的值。

免责声明* class 中的字符串无意伤害任何人。这是我和我来自中国的室友之间的笑话,谢谢。

这里有几个错误。

首先,在您编写的主要 class 中,您在 CharacterSurvey 对象上调用了方法 survey(),但调查本身的实现方式需要一个 String 参数来工作

public void survey(String character)

此方法也 return无效。如果你想以某种方式从该方法中获取一个字符串,你需要将该方法声明为

public String survey() {} 

此方法return现在是一个字符串。

如果我要给出一个总体思路,请在第二个 class 中声明一个 String 变量,它将在调查方法内部进行操作,一旦调查被声明为 String 方法 return 方法内部最后的值。

通过这样做,您将能够通过调用 characterSurvey 对象上的方法来接收字符串值(当然,将值分配给字符串变量或使用它)。

希望对您有所帮助

好像是想在调查完成后在mainclass中获取字符,所以可以在main方法中打印出来。

您可以简单地将您的 void survey 方法更改为 String survey 方法,从而允许您在调用该方法时 return 一个值:

class CharacterSurvey {
    public String takeSurvey() {
        //ask questions, score points
        String character = null;

        if(firstPerson == outcome) {
            character = "First Person";
        }

        return character;
    }
}

现在,当您调用此方法时,您可以检索从中返回的值:

class Main {
    public static void main(String[] args) {
        CharacterSurvey survey = new CharacterSurvey();

        String character = survey.takeSurvey();
        System.out.println(character);
    }
}