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