【问题标题】:Java 1.6: Public variable won't workJava 1.6:公共变量不起作用
【发布时间】:2013-12-15 05:27:53
【问题描述】:

我对 java 很陌生(大约 1 周),我被一些代码困住了。我到处寻找,但没有任何效果。我正在尝试将字符串从 MainProgram 类发送到 FileWriter 类。

主程序:

import java.util.*;

public class MainProgram {
    public static void main(String[] args){
        static answer;
        Scanner Input = new Scanner(System.in);
        System.out.println("Enter something so I can write it to a file");
        String answer = Input.nextLine();
        System.out.print("You said ");
        System.out.print(answer);

    }
}

文件编写器:

import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class FileWriter{
    public static void SaveList() throws FileNotFoundException{
            PrintWriter writer = new PrintWriter("OMGIMAFILELOLZ.txt");
            writer.println(answer);
            writer.close();

    }
}

无论我做什么,我都无法将答案字符串传递给 FIleWriter 类。请帮忙! 顺便说一句,请不要让答案太复杂。我刚从 QBASIC 出来,我只有 12 岁,所以请保持简单!

【问题讨论】:

  • 你需要为SaveList方法声明一个参数,然后通过answer作为参数从main调用这个方法。
  • 我回滚了您的编辑。在收到原始问题的答案后,通过完全更改问题的全部内容(包括标题和标签)来破坏问题在这里是不合适的。如果您有新问题,请将其作为新问题发布。

标签: java eclipse string macos public


【解决方案1】:
static answer;

首先缺少数据类型。

而且你不能在方法中声明字段。

应该是这样的

static String answer;
    public static void main(String[] args) { 
   //   answer = Input.nextLine();

然后在FileWriter类中,

 writer.println(MainProgram.answer);

【讨论】:

    【解决方案2】:
    1. 在这一行static answer; 你没有提到 data type 的答案。
    2. main 已经是一个静态块,所以你不能声明静态 main 方法中的变量
    3. 像这样public static String answer;在班级级别声明答案

    类级语法

    public class MainProgram {
    public static String answer;//class level declaration
    public static void main(String args[])
    {
    //some codes
    }
    

    【讨论】:

    • @R.S 我们可以做任何没有人禁止但编译器不会编译的事情。
    • @R.S 我在第二点说你不能在方法内部声明一个静态变量,因为 main 已经是静态的了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2015-05-29
    • 2016-07-08
    • 2015-04-07
    • 2012-10-10
    相关资源
    最近更新 更多