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 に答える