Java: получение значения из массива из определенного места - PullRequest
0 голосов
/ 27 января 2010

У меня есть массив чисел, и я хотел бы получить одно из значений из местоположения "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);  
}

У меня есть числа в массиве, представляющие точки. Индекс значения будет местоположением вершин массива. Что я могу сделать, чтобы сделать эту работу? Спасибо!

Ответы [ 3 ]

3 голосов
/ 27 января 2010

В Java индексы массивов обозначаются квадратными скобками. Вы можете заменить ваш вызов get (vertices, index) следующим образом:

  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.

3 голосов
/ 27 января 2010

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

 Point vertex = vertices[index];

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

1 голос
/ 27 января 2010

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

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