Java - Язык:получение значения из массива из определенного местоположения
Вопрос
У меня есть массив чисел, и я хотел бы получить одно из значений из местоположения "index".Я просмотрел документацию по Java http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/Array.html но мой код все еще не компилируется.
вот мой метод:
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);
}
У меня есть числа в массиве, представляющие Точки.Индекс значения будет являться местоположением значений массива.Что я могу сделать, чтобы это сработало?Спасибо!
Решение
В Java индексы массива обозначаются квадратными скобками.Вы можете заменить свой вызов get (вершины, индекс) следующим образом:
vertex = vertices[index];
При взгляде на ваш код кажется, что вы исходите из языка, который определяет глобальную функцию get () для таких операций.Имейте в виду, что в Java нет глобальных функций.Каждый создаваемый вами класс определяет свои собственные функции, и предполагается, что любой вызов функции без предшествующего ему объекта или класса определен в локальном классе.
Итак, ваш вызов get(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.
Другие советы
Я думаю, ты просто ищешь:
Point vertex = vertices[index];
По крайней мере , если вы не в поисках этого, пожалуйста, расскажите подробнее, в чем разница между использованием индекса массива и тем, что вы делай хочу :)
Надеюсь, это сработает!
java.awt.Point getVertex(int index)
{
return vertices[index];
}