簡體   English   中英

輔助方法中放置錯誤的令牌錯誤Java

[英]misplaced token error java in helper methods

我正在編寫一個作為學生成績單的類,並創建了一個將添加課程的助手實例方法,我通過HashMap實現了成績單類,課程名稱是關鍵,而成績是其價值。 當我嘗試測試班級時,使用添加課程方法僅添加沒有成績的課程名稱時出現錯誤,但出現此錯誤

此行上有多個標記-令牌“ CS200”的語法錯誤,刪除此令牌-令牌的語法錯誤,構造錯誤

當我使用與課程名稱相同的方法來評分時,會出現此錯誤

這行有多個標記-標記語法錯誤,刪除這些標記-標記語法錯誤,結構放置錯誤

我很確定我的代碼是正確的,但是我不知道我在哪里寫錯了,我在這里寫的代碼是:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class Transcript
{
    private Map<String, Double> transcript;
    private String transcriptInString = "";

    public Transcript ()
    {
        transcript = new HashMap<String, Double> (30);
    }

    /* ---------------------------------------------- Helper Methods ---------------------------------------------- */

    public void addCourse (String courseName, double grade)
    {
        transcript.put(courseName, grade);
    }

    public void addCourse (String courseName)
    {
        addCourse(courseName, 0.0);
    }

    public String toString ()
    {
        Set<String> transcriptKeys = transcript.keySet();
        Iterator<String> keyIterator = transcriptKeys.iterator();
        String courseName;

        while (keyIterator.hasNext())
        {
            courseName = keyIterator.next();
            transcriptInString += courseName + "\t" + transcript.get(courseName) + "\n";
        }

        return transcriptInString;
    }
}

這是我編寫的驅動程序類,用於檢查代碼是否給出了正確的結果

public class Driver
{
    Transcript t = new Transcript ();
    t.addCourse("CS200", 100);
}

謝謝大家的幫助

查看您的Driver類:

public class Driver
{
    Transcript t = new Transcript ();
    t.addCourse("CS200", 100);
}

您的第一行還可以-聲明一個變量。 但是第二條語句只是試圖執行一個方法-但這不在方法,構造函數,初始化程序塊等的上下文中。

您可以將其放在構造函數中:

public class Driver
{
    public Driver()
    {
        Transcript t = new Transcript ();
        t.addCourse("CS200", 100);
    }
}

或一種方法:

public class Driver
{
    public void test()
    {
        Transcript t = new Transcript ();
        t.addCourse("CS200", 100);
    }
}

目前尚不清楚Driver的用途,但不能僅在此類中包含語句。

語句t.addCourse("CS200", 100); 不允許在類的聲明部分中使用。 將其移動到其他位置(例如在構造函數內部),而不是:

public class Driver
{
    Transcript t = new Transcript ();
    t.addCourse("CS200", 100);
}

你應該有:

public class Driver
{
    Transcript t = new Transcript ();
    public Driver(){
        t.addCourse("CS200", 100);
    }
}

如果您希望所有內容都保持靜態,則可以執行以下操作

public class Driver
{
    static Transcript t = new Transcript ();
    static{
        t.addCourse("CS200", 100);
    }
}

您需要將Driver類中的代碼放入一個方法中(也許是一個主方法?)。

例:

public class Driver {
    public static void main(String[] args) {
        Transcript t = new Transcript ();
        t.addCourse("CS200", 100);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM