0

所以我有这条线

String line = null;

在那之后我有一个 if 语句它告诉我的错误是

令牌“;”上的语法错误,{ 应在此令牌之后

所以它说而不是“;” 应该有一个“{”。

该程序还告诉我,我需要一个额外的“}”,这很可能是由于第一个问题而添加的。

解决方案:我不得不将代码放在构造函数中。

if (f.exists()) {   
try {
    reader = new BufferedReader(new FileReader(
          System.getProperty("user.home") + "/Desktop/Settings.txt"));
    line = reader.readLine();

} catch (IOException e2) {
  // ... etc....
4

3 回答 3

6

你有代码挂在类中,必须在方法或构造函数中。您只能在类中拥有变量和方法声明以及带有赋值的声明,但不能有非声明性语句,例如...

if (f.exists()) {   
    try {
        reader = new BufferedReader(new FileReader(
              System.getProperty("user.home") + "/Desktop/Settings.txt"));
        line = reader.readLine();

    } catch (IOException e2) {
      // ... etc....

在课堂上赤身裸体。也许把它放在一个构造函数中。

于 2013-07-03T01:55:58.487 回答
2

添加花括号,这将在您创建新对象时执行,在此构造函数之前的父构造函数之后。但是不好,您可以按照@HovercraftFullOfEels 的建议将其放入方法和构造函数中

    { // here new
    if (f.exists()) {

        try {
            reader = new BufferedReader(new FileReader(System.getProperty("user.home") + "/Desktop/Settings.txt"));
            line = reader.readLine();

        } catch (IOException e2) {
            // TODO Auto-generated catch block
            //e2.printStackTrace();
            JOptionPane.showMessageDialog(null, "Error Code: Bx001", "Error", 0);

        }
        //System.out.println(line);

        Shared.enableHotKey = line.substring (0, line.indexOf("!"));

        Shared.key1 = line.substring(line.indexOf("!") + 1, line.indexOf("@"));

        Shared.key2 = line.substring(line.indexOf("@") + 1, line.indexOf("#"));

        Shared.key3 = line.substring(line.indexOf("#")  + 1, line.indexOf("$"));

        Shared.startUpMessage = line.substring(line.indexOf("$") + 1);

        System.out.println(Shared.enableHotKey + " " + Shared.key1 + " " + Shared.key2 + " " + Shared.key3 + " " + Shared.startUpMessage);
    } else {
        Shared.startUpMessage = "true";
    }

 }// here new 
于 2013-07-03T02:04:45.663 回答
1

我认为您是 Java 编程语言(面向对象)的新手,所以您犯了这个错误。

你应该把这些东西放在函数里面。

所以,它可能看起来像:

package org.maple.mapleshot;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.JOptionPane;

public class CheckSettings {

public void check(){

BufferedReader reader;

File f = new File (System.getProperty("user.home") + "/Desktop/Settings.txt");

String line = null;

if (f.exists()) {

    try {
        reader = new BufferedReader(new FileReader(System.getProperty("user.home") + "/Desktop/Settings.txt"));
        line = reader.readLine();

    } catch (IOException e2) {
        // TODO Auto-generated catch block
        //e2.printStackTrace();
        JOptionPane.showMessageDialog(null, "Error Code: Bx001", "Error", 0);

    }
    //System.out.println(line);

    Shared.enableHotKey = line.substring (0, line.indexOf("!"));

    Shared.key1 = line.substring(line.indexOf("!") + 1, line.indexOf("@"));

    Shared.key2 = line.substring(line.indexOf("@") + 1, line.indexOf("#"));

    Shared.key3 = line.substring(line.indexOf("#")  + 1, line.indexOf("$"));

    Shared.startUpMessage = line.substring(line.indexOf("$") + 1);

    System.out.println(Shared.enableHotKey + " " + Shared.key1 + " " + Shared.key2 + " " + Shared.key3 + " " + Shared.startUpMessage);
} else {
    Shared.startUpMessage = "true";
}
}

}

不要担心这些事情。只要多练习,你就会对java更加熟悉。

于 2013-07-03T02:04:19.363 回答