在for循环中访问类的变量

时间:2015-04-13 10:43:05

标签: java class

我无法访问我在for循环中创建的类的变量。

我创建的类非常简单,只是将vector和double值组合在一起。

public class VectorDistance 
{
    Vector2d v;
    double d;

    public VectorDistance(Vector2d v, double d)
    {
        this.v = v;
        this.d = d;
    }
}

并且在另一个继承了这些向量距离的ArrayList的类的方法中,我试图访问它的变量,但它似乎并不想访问它。但无论出于何种原因,它都不会让我访问它。我尝试过value.get(0)等,但这不起作用。任何帮助将不胜感激。它在整个代码中声明为ArrayList,类型为VectorDistance。

public String NewPositionCheck(Vector2d checkPosition, int blockSize, Types.ACTIONS fromPrevious, List<Types.ACTIONS> previousPositions, ArrayList<Observation>[][] grid, int i, ArrayList <VectorDistance> vd)
{
    double closest = Double.MAX_VALUE;
    for (VectorDistance value : vd)
    {

    }
}

我想要的是通过将其双值(d)与值&#34;最接近的&#34;进行比较,找到ArrayList中的最小值。然后将该位置存储为整数(我忘记添加)

2 个答案:

答案 0 :(得分:0)

您必须将它们声明为公开,才能在其类之外访问它们

public Vector2d v;
public double d;

或者更好的解决方案是创建getter / setter(只是google)

此外 - 像netbeans,eclipse等现代IDE甚至可以选择为你创建getter / setter)

答案 1 :(得分:0)

您必须将访问修饰符指定为public,如下所示:

    public class VectorDistance 
    {
        public Vector2d v;
        public double d;

        public VectorDistance(Vector2d v, double d)
        {
            this.v = v;
            this.d = d;
        }
    }

更专业的方式是声明访问方法,名称为getSomething()或setSomething(ValueType val)