[英]Converting a List type<Integer> to String[] Array using method reference
[英]Array reference type in a method
我已经获得了在项目上工作的开始代码,但是我对以下代码感到困惑,似乎无法在线找到任何示例!
public static Entity[][] read(){ ... }
如何处理该实体以将新条目添加到数组,然后如何返回它?
以下构造函数由其他类调用。
public World() {
aWorld = new Entity[SIZE][SIZE];
int r;
int c;
for (r = 0; r < SIZE; r++) {
for (c = 0; c < SIZE; c++) {
aWorld[r][c] = null;
}
}
aWorld = FileInitialization.read();
}
我觉得如果数组只是一个参数或者像这样的话,那会简单得多:
public static int[][] read(){ ... }
更新:
目的是从read()方法中的文件中读取内容,然后根据文件中的位置将实体分配给正确的位置。 但是我无法分配,因为数据类型将不兼容,Required是Entity,但是我希望能够将其设置为int,char或String。
要添加到对象数组,您可以使用原始数组(例如int
)进行完全相同的操作,只需使用Entity
。 因此,如果您想向aWorld
添加内容,请使用
aWorld[r][c] = new Entity(...); //with provided constructor's parameters
// or
aWorld[r][c] = existing_Entity; //for an Entity variable you already have
完成添加后,只需返回数组aWorld
。
如果FileInitialization的静态read()将返回Entity [] [],则它本身就是一个实体数组。 这意味着您不应该迭代aWorld,而应像直接将返回值分配给它
aWorld = FileInitialization.read();
在read()内部,使用在构造函数中创建的for循环,并添加一个新的Entity对象,如Linus所指出的那样
好吧,我要向在座的所有人表示感谢,因为我的方向正确。 但是,我想分享一下我的答案,该答案应该简单明了,希望将来使某人的生活更轻松。
要初始化对象数组,只需像初始化任何其他数组那样进行,在这种情况下:
Entity[][] reference_name = new Entity[SIZE][SIZE];
要返回此值,只需返回引用:
return reference_name;
现在是您实际修改数组条目的部分。 假设您有类似
public static void Entity[][] read() { .. }
您需要创建一个类文件Entity.java(与要传递的数组类型同名)
在这种情况下,它将看起来像这样:
public class Entity {
private char appearance;
public Entity(char anAppearance) {
appearance = anAppearance;
}
现在给这个数组一个条目做这样的事情:
reference_name[0][0] = new Entity('X');
好吧,以防万一您想知道如何显示它,只需将accesor方法添加到Entity类。
public char getAppearance() {
return(appearance);
}
并输出:
System.out.println(reference_name[0][0].getAppearance(); );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.