Java 1.6:公共变量不起作用

Posted

技术标签:

【中文标题】Java 1.6:公共变量不起作用【英文标题】:Java 1.6: Public variable won't work 【发布时间】: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调用这个方法。 我回滚了您的编辑。在收到原始问题的答案后,通过完全更改问题的全部内容(包括标题和标签)来破坏问题在这里是不合适的。如果您有新问题,请将其作为新问题发布。 【参考方案1】:
static answer;

首先缺少数据类型。

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

应该是这样的

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

然后在FileWriter类中,

 writer.println(MainProgram.answer);

【讨论】:

【参考方案2】:
    在这一行static answer; 你没有提到 data type 的答案。 main 已经是一个静态块,所以你不能声明静态 main 方法中的变量 像这样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 已经是静态的了。

以上是关于Java 1.6:公共变量不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Sonata Admin 编辑表单多对多不起作用 - symfony2.1.6

调用函数从类返回私有变量不起作用

Java - 方法更改 JTable 中变量的值(刷新不起作用)

如何解决java环境变量设置不起作用的问题

MiniCssExtractPlugin 公共路径不起作用

java中的包帮助 - 导入不起作用