Return 用户在 Java 中的另一个 class 的另一个方法中输入

Return the user input in another method from another class in Java

我在classControl中有如下方法:

public void addName() {
    language.specifyArtist();
    sc.nextLine();
}

并在 class Artist:

public String getName (){
    control.addName();
    return artistName;
}

artistName是一个数据字段。不知何故,第一种方法中给出的用户输入未存储在第二种方法的 return 值中。有人可以解释一下我必须如何设置这两种方法,第一种方法是处理用户输入,第二种方法是 getter 用于用户输入吗?

首先你必须 return sc.nextLine 的结果,以便它可以分配给变量 artistName:

public String readName() {
    language.specifyArtist();
    return sc.nextLine();
}

另外,名称只能设置一次。这样我就不会把readName方法写到get方法里面了。最简单的解决方案是在构造函数中调用它:

public Artist(Control control) {
    artistName = control.readName();
}
    
public String getName() {
    return artistName;
}

最好在构造函数中直接传递名称,从而将数据与输入分开:

public Artist(String name) {
    artistName = name;
}