簡體   English   中英

將一個班級的信息添加到另一個班級的數組列表中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM