我无法访问我在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中的最小值。然后将该位置存储为整数(我忘记添加)
答案 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)