Java ArrayList<&燃气轮机;获取列表
您好,在下面的代码中,我有一个带有Java ArrayList<&燃气轮机;获取列表,java,android,arraylist,Java,Android,Arraylist,您好,在下面的代码中,我有一个带有currentLong和currentLat,vars的LocationManager。单击按钮,我将varLat1和VarLong1添加到arraylist坐标。如何使用Log.d获取数组的值marccordinates.size()为我提供了正确的大小,但marccordinates.get为我提供了gpsplotter.main活动$Coordinates@42204f70帮助,谢谢 public class MainActivity extends Ap
currentLong
和currentLat
,vars的LocationManager
。单击按钮,我将varLat1
和VarLong1
添加到arraylist坐标。如何使用Log.d
获取数组的值marccordinates.size()
为我提供了正确的大小,但marccordinates.get
为我提供了gpsplotter.main活动$Coordinates@42204f70
帮助,谢谢
public class MainActivity extends AppCompatActivity implements LocationListener {
public class Coordinates {
public final double latitudeX;
public final double longitudeY;
public Coordinates(double lat, double lon) {
latitudeX = lat;
longitudeY = lon;}}
您需要重写类坐标
中的toString()
方法
这将解决问题
例子:
Coordinates
没有toString
方法,因此使用了Object
的默认方法,即名称+内存地址
如果需要更好的表示,请重写toString
方法:
public class Coordinates {
...
@Override
public String toString() {
// return some string here.
}
}
您必须重写类中的toString()
方法。否则将调用的toString()
of,它不知道要公开哪些属性,并将返回ClassName@HashCode
:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
要解决此问题,只需在类中重写toString
:
public class Coordinates {
//...
@Override
public String toString() {
return "Coordinates [latitude=" + latitude + ", longitud=" + longitud + "]";
}
}
将问题标记为重复问题比创建重复答案要好。排序:)遇到了另一个我没有预见到的问题。如果我想将运算符应用为:double sum=marccordinates.get(0)+marccordinates.get(1);
@Override
public String toString() {
return "Coordinates [latitude=" + latitude + ", longitud=" + longitud + "]";
}
public class Coordinates {
...
@Override
public String toString() {
// return some string here.
}
}
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
public class Coordinates {
//...
@Override
public String toString() {
return "Coordinates [latitude=" + latitude + ", longitud=" + longitud + "]";
}
}