2010-01-27 3 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 нет глобальных функций. Каждый класс, который вы создаете, определяет его собственные функции, и любой вызов функции без предшествующего ему объекта или класса предполагается определенным в локальном классе.

Итак, ваш звонок, чтобы получить (Point [], 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 –

3

Я думаю, что вы просто ищете:

Point vertex = vertices[index]; 

По крайней мере, - если вы не ищет то, пожалуйста расширить на то, что разница между использованием индекса массива, и что вы do want :)

+0

Хорошо, теперь я чувствую себя действительно немым. Я просто перешел от программирования на C, так что это должен был быть аристократ. Но поиск вещей на Java обычно требует получения, поэтому я думал по этому пути. Спасибо хоть! он работает – dukevin

+0

@Kevin: Да, Java немного странно в обработке массивов. Они обрабатываются очень специально - они не реализуют никаких интерфейсов, и у них есть дополнительный синтаксис. C# является * бит * saner, поскольку вы можете определить индексаторы для своих типов, а массивы реализуют соответствующие интерфейсы, но они по-прежнему «особенные» по-разному. –

1

Надеюсь, что это сработает!

java.awt.Point getVertex(int index) 
{ 
    return vertices[index]; 
} 
Смежные вопросы