[英]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.