2016-01-19 37 views
2

我是Java的新手。JAVA「插入Dimensions來完成Expression/ReferenceType」

我已經從我的BFS代碼中提供了一小段代碼。

public int bfs(Person p, Person q) { 
    private HashMap<Person, boolean> marked; 
    private int count; 

    marked = new marked<Person, boolean>(); 
    count = new int; 
} 

根據Eclipse,我在最後4行的每一行都有錯誤。

語法錯誤:插入「維度」以完成表達式/參考類型。

我將不勝感激任何意見/建議!

+1

不要做壞習慣。將來,請不要**在你的問題的任何地方放置'JAVA'。出於某種原因,這是一個不良問題的趨勢 - 不要讓人們認爲這是一個問題。只要使用'Java'或者考慮到Java標籤使它顯而易見,這是一個Java問題。 – bcsb1001

+0

您最好仔細閱讀Eclipse的診斷程序,並將其作爲指導以找到解決方案。有關Java的教程也會很有用。 –

回答

0

首先,我建議你開始讀一本Java教程...

https://docs.oracle.com/javase/tutorial/java/TOC.html

對於您的問題具體是:

至於你的代碼,你可以權當你聲明它們初始化變量:

Map<Person, Boolean> marked = new HashMap<Person, Boolean>(); 
    int count = 0; // or whatever initial value 
0

看來,這個片段被扔周圍隨機關鍵字沒有任何的理解 - 我會建議一個Java教程。首先,泛型是拳擊的主要用途之一。 boolean或任何其他原語(您可以通過它們的標識符是小寫字母來識別這些原語,並且大多數IDE將突出顯示它們)不能將用作泛型類型,並且必須使用它們的大寫等效項(一個簡單的包裝類)。這裏使用HashMap<Person, Boolean>

我不確定marked = new marked...是什麼意思 - 顯然,marked不是一種類型,不能用在這種情況下。 new x(params)初始化x類型的對象,並通過其構造函數paramsnew x<generics>(params)是相同的,但x的通用類型是generics

最後,new int根本無效 - 請參閱上面的解釋。基元是而不是對象,這意味着初始化它們是沒有意義的,因此是無效的。另外,你期望這個表達式產生什麼?類型爲int,但您未指定使用哪一種int。正確的語法是文字:count = x;其中xint範圍內的某個整數。

作爲一個方面說明,你的方法有一個不清楚的名字,變量可以在你聲明它們以簡化代碼的同一行中初始化。

1

您需要使用包裝器對象而不是基元。使用布爾值而不是布爾值。

2

此錯誤的原因 - 您試圖將基本對象傳遞到泛型類型聲明中,而泛型類型始終期望使用Wrapper類對象。如上所示,在代碼中使用'布爾'代替'布爾'。

相關問題