我如何从 toString() 方法中的方法调用字符串(所有方法都相同 class)

How can i call a String from a method in a toSting() method (all methods are in same class)

我被困在这里有一段时间了。 我想将课程方法中的字符串 lesson 调用到我的 toString() 方法中。两种方法都在同一个 class.

教学方法如下:

public static String lesson() {
    System.out.println("Now you have written about your day, what are the lesson learnt ? Huh??");
    Scanner lessonLearned = new Scanner(System.in);
    String lesson = lessonLearned.nextLine();
    return lesson;
}

这是 toString 方法

@Override
public String toString() {
    String final = "";
    final = "[" + Calendar.getInstance().getTime() + "," +lessonShouldBeHere+ "," AnotherString  + "]";
    return out;
}

正如所写,String lesson 是一个局部变量,在方法的上下文之外不可访问(因为它在堆栈上并且不再存在)。

static String storedLesson = null;
public static String lesson() {
    System.out.println("Now you have written about your day, what are the lesson learnt ? Huh??");
    Scanner lessonLearned = new Scanner(System.in);
    String lesson = lessonLearned.nextLine();
    storedLesson  = lesson;
    return lesson;
}

要解决这个问题,请创建一个静态变量来保存课程值。我建议静态,因为这是一个静态方法。如果这个方法是class的成员方法,最好把它做成一个成员变量。

然后在你的toString方法中使用storedLesson