[英]Adding one class' info to an array list in another class
我正在用Java做一個基本的GPS流程項目。 它的點類是當前位置,如下所示;
public class Point {
// Constants useful for bounds checking, etc
private static final double MIN_LONGITUDE = -180.0;
private static final double MAX_LONGITUDE = 180.0;
private static final double MIN_LATITUDE = -90.0;
private static final double MAX_LATITUDE = 90.0;
private static final double MEAN_EARTH_RADIUS = 6.371009e+6;
// TODO: Define fields for time, longitude, latitude and elevation
public static ZonedDateTime time = ZonedDateTime.now();
public static double longitude;
public static double latitude;
public static double elevation;
// TODO: Define a constructor
public Point(ZonedDateTime timestamp, double longitude, double latitude, double elevation) {
this.longitude = longitude;
this.latitude = latitude;
this.elevation = elevation;
}
Point point1 = new Point ( time, -1.54853, 53.80462, 72.5);
// TODO: Define getters for the fields
public static ZonedDateTime getTime() {
return time;
}
public static double getLongitude() {
return longitude;
}
public static double getLatitude() {
return latitude;
}
public static double getElevation() {
return elevation;
}
// TODO: Define a toString() method that meets requirements
public String toString() {
return "( " + longitude + ", " + latitude + " ), " + elevation;
}
然后是另一個類,跟蹤,它應該是顯示旅程的點的集合。 但是,我正在為如何解決這個問題而苦苦掙扎,我創建了一個鏈表,但不確定從何處去。 我一直在擴展類,但是在add方法中使用Point時出現標識符預期錯誤。
導入java.time.ZonedDateTime; 導入java.util.ArrayList;
課程跟蹤{
//public LinkedList<Point> Track = new LinkedList<>();
public Track() {
ArrayList<Point> Track = new ArrayList<>();
}
public static void add(Object Point){
Track.add((Point));
}
但是,我在引用track()創建的新數組以添加下一點時遇到了麻煩。
好的,所以您嘗試在這里做很多不同的事情-我要放置的方法不是唯一的方法,而是要考慮的事情...我已經將所有內容都放入了一個包中,因此您需要在自己的文件中進行重組蝕設置相應...
在此處進行一些修改是因為您以靜態方式引用var和方法,不是您不能做到這一點,但是出於您想要實現的目的,這可能是一種更好的學習體驗。 我還刪除了已死的代碼...時間戳部分可能不是您想要的-但似乎更適合此處。
package com.gps;
import java.time.ZonedDateTime;
public class Point {
// TODO: Define fields for time, longitude, latitude and elevation
public ZonedDateTime time;
public double longitude;
public double latitude;
public double elevation;
public Point(ZonedDateTime timeStamp, double longitude, double latitude, double elevation) {
this.time = timeStamp;
this.longitude = longitude;
this.latitude = latitude;
this.elevation = elevation;
}
// TODO: Define getters for the fields
public ZonedDateTime getTime() {
return time;
}
public double getLongitude() {
return longitude;
}
public double getLatitude() {
return latitude;
}
public double getElevation() {
return elevation;
}
@Override
public String toString() {
return "Point [time=" + time + ", longitude=" + longitude + ", latitude=" + latitude + ", elevation="
+ elevation + "]";
}
}
在這里,我添加了一個toString(),以便從Engine類進行打印時可以看到它,正如我在第一篇文章中提到的那樣,我已重命名了變量和方法,以便可以跟蹤最新情況-確保執行此操作很重要它...
package com.gps;
import java.util.ArrayList;
public class Track {
ArrayList<Point> track = new ArrayList<>();
public void add(Point point){
track.add(point);
}
@Override
public String toString() {
return "Track [track=" + track + "]";
}
}
由於我要處理的唯一數據是您提供的返回的數據-日期可能不正確,但從Mykong的示例中來看,它工作得很好:)
package com.gps;
import java.time.ZonedDateTime;
public class Engine {
public static void main(String[] args) {
// TODO Auto-generated method stub
Track track = new Track();
Point point = new Point (ZonedDateTime.now(), -1.54853, 53.80462, 72.5);
System.out.println(point.getTime());
track.add(point);
System.out.println(track);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.