如何将 class 中创建的所有对象存储在 Java 中 class 返回的单个数组中?
How can I store all objects created in a class in a single array returned by that class in Java?
我正在使用 Java 创建一个名为 Track 的对象,其中包含由 class 中的方法创建的一堆不同的数值对象(浮点数、双精度数、整数等)。这个 class,Track,将被另一个 class 实例化多次(Track 的多个实例在另一个 class 的单个实例中)。我希望 track 成为这些数字对象的数组,以便父 class 将包含多个 Track 数组。
Track class 的结构是这样的,嵌套在另一个 class 中,它将有一个循环来根据需要多次实例化 Track。
class Track
{
public int trackID()
{
}
public short trackValidity()
{
}
....//other objects
}
就像你通常声明数组一样,例如:
Track[] track = new Track[42];
track[0] = new Track();
或作为完整的工作示例:
public class ObjectArray {
Track[] track;
public static void main(String[] args){
ObjectArray tester = new ObjectArray();
tester.setIt();
tester.getIt();
}
public void setIt(){
track = new Track[42];
for(int i=0; i<42; i++){
track[i]= new Track(i);
track[i].calcProduct(i, i+1);
}
}
public void getIt(){
for(int i=0; i<track.length; i++){
System.out.println("Track "+track[i].getSerial()+" has product: "+track[i].getProduct());
}
}
class Track{
private int serial;
private int product;
Track(int i){
serial = i;
}
public void calcProduct(int a, int b){
product = a*b;
}
public int getSerial() {
return serial;
}
public int getProduct() {
return product;
}
}
}
IMO,你可以创建一个函数来构建一个包含数字对象的对象数组:
public ArrayList getNumbers(){
ArrayList array = new ArrayList();
array.add(trackID());
array.add(trackValidity());
...
return array;
}
记得在从数组中获取对象时强制转换它,例如 pos 0 (trackID) 是一个 int,所以当您从数组列表中获取它时不要忘记强制转换它:
Track myTrack = new Track();
//set track variables ...
ArrayList trackInfo = myTrack.getNumbers();
int trackID = (int) trackInfo.get(0);
我正在使用 Java 创建一个名为 Track 的对象,其中包含由 class 中的方法创建的一堆不同的数值对象(浮点数、双精度数、整数等)。这个 class,Track,将被另一个 class 实例化多次(Track 的多个实例在另一个 class 的单个实例中)。我希望 track 成为这些数字对象的数组,以便父 class 将包含多个 Track 数组。
Track class 的结构是这样的,嵌套在另一个 class 中,它将有一个循环来根据需要多次实例化 Track。
class Track
{
public int trackID()
{
}
public short trackValidity()
{
}
....//other objects
}
就像你通常声明数组一样,例如:
Track[] track = new Track[42];
track[0] = new Track();
或作为完整的工作示例:
public class ObjectArray {
Track[] track;
public static void main(String[] args){
ObjectArray tester = new ObjectArray();
tester.setIt();
tester.getIt();
}
public void setIt(){
track = new Track[42];
for(int i=0; i<42; i++){
track[i]= new Track(i);
track[i].calcProduct(i, i+1);
}
}
public void getIt(){
for(int i=0; i<track.length; i++){
System.out.println("Track "+track[i].getSerial()+" has product: "+track[i].getProduct());
}
}
class Track{
private int serial;
private int product;
Track(int i){
serial = i;
}
public void calcProduct(int a, int b){
product = a*b;
}
public int getSerial() {
return serial;
}
public int getProduct() {
return product;
}
}
}
IMO,你可以创建一个函数来构建一个包含数字对象的对象数组:
public ArrayList getNumbers(){
ArrayList array = new ArrayList();
array.add(trackID());
array.add(trackValidity());
...
return array;
}
记得在从数组中获取对象时强制转换它,例如 pos 0 (trackID) 是一个 int,所以当您从数组列表中获取它时不要忘记强制转换它:
Track myTrack = new Track();
//set track variables ...
ArrayList trackInfo = myTrack.getNumbers();
int trackID = (int) trackInfo.get(0);