2010-01-27 77 views
0

我有一個數組數組,並想從位置「index」中檢索其中一個值。 我看過Java文檔http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/Array.html但我的代碼仍然沒有編譯。Java:從定義位置的數組中獲取值

這裏是我的方法:

public class ConvexPolygon implements Shape 
{ 
    java.awt.Point[] vertices; 

    public ConvexPolygon(java.awt.Point[] vertices) 
    { 
     this.vertices = vertices; 
     this.color = color; 
     this.filled = filled; 
    } 

java.awt.Point getVertex(int index) 
{ 
    Point vertex; 
    vertex = get(Point vertices, int index); 
} 

我有一個數字在代表點的數組。值索引將成爲數組真實的位置。 我能做些什麼來完成這項工作?謝謝 !

回答

3

在Java中,數組索引由方括號表示。你可以(頂點,索引)調用,像這樣替換你可以獲得:

vertex = vertices[index]; 

在看你的代碼,看來你是從定義了這種操作的全球性的get()函數語言來。請注意,在Java中,沒有全局函數。你創建的每個類定義了它自己的函數,並且任何沒有在它之前的對象或類的函數調用被假定爲在本地類中定義。

所以,你的調用來獲取(點[],INT)只能工作,如果你定義了這個類功能:

public Point get(Point[] vertices, int index) { 
    return vertices[index]; 
    } 

或靜態地定義它的另一個類與類之前調用名稱:

public class PointArrayHelper { 

    public static Point get(Point[] vertices, int index) { 
    return vertices[index]; 
    } 
} 

PointArrayHelper.get(vertices, index); 

現在,予以警告,我不認爲你應該做其中任一!我只是認爲它可以幫助你更好地理解Java。

+0

偉大的描述/級別的幫助。希望我能給+3 – 2010-01-27 22:05:44

3

我認爲你只是在尋找:

Point vertex = vertices[index]; 

至少 - 如果你不尋找爲,請在不同的是使用數組索引,哪些是你之間有什麼擴張做想:)

+0

好吧,我現在真的很愚蠢。我只是從C編程轉換而來,所以這應該是一個不可靠的東西。但是在Java中檢索事物通常需要get,所以我一直在思考。雖然謝謝!它的工作 – dukevin 2010-01-27 20:46:27

+0

@Kevin:是的,Java在處理數組時有點奇怪。它們被特別對待 - 它們不實現任何接口,並且它們具有額外的語法。 C#是一個* bit * saner,因爲您可以在自己的類型上定義索引器,並且數組實現適當的接口,但它們仍然以各種方式「特殊」。 – 2010-01-27 20:53:05

1

希望它的作品!

java.awt.Point getVertex(int index) 
{ 
    return vertices[index]; 
}