2012-10-21 49 views
-4

我想實現一個接口指名板Board,但每當我嘗試添加任何內容,我在它創建的ArrayList,它拋出爪哇 - 接口不允許ArrayList的運作正確

- Syntax error on token(s), misplaced construct(s) - Syntax error on token "Tile1", VariableDeclaratorId expected after this token

這是完整的代碼:

import java.util.ArrayList; 


public interface BoardTest { 
    public ArrayList<Land> lands = new ArrayList<Land>(); 

    Land Tile1 = new Land(0,1,0,0,0, "Tile 1"); 
    lands.add(Tile1); 
} 

任何幫助將不勝感激!

+3

你想達到什麼目的?即使在課堂上,你也不能有這樣的浮動代碼。 –

+1

你知道接口是什麼嗎? – Juvanis

+0

閱讀界面基礎知識:http://docs.oracle.com/javase/tutorial/java/concepts/interface.html – Darwind

回答

4

接口不能實現。

您不能在接口中創建ArrayList或調用其任何方法。你可以做的所有事情都是按照你寫的方式創建一個方法簽名。

接口的整個想法是將「what」和「how」分開。

也許你的意思是這樣的:

public interface Board { 
    void land(Land l); 
} 

public class BoardImpl implements Board { 
    List<Land> squares = new ArrayList<Land>(); 

    public void land(Land l) { 
     this.squares.add(l); 
    } 
} 
+1

貶低你的白癡需要幫助。更好地改變你的措辭,所以即使*他*可以理解它:( – Bohemian

+0

謝謝你,波希米亞人。理由似乎佔上風。 – duffymo

+0

不是真的 - 你仍然有downvote :( – Bohemian

2

Interface只包含method的宣言和初始化域聲明。 在接口中不能有像方法調用這樣的語句。

您應該使用一個類,它實現了接口並在其中執行所有這些工作。在你的界面中只需要聲明方法。