这是一个非常简单的问题,但我想知道如何创建没有名称的类对象。例如,如果我有一个名为“Zombie”的类,如何创建一个新的对象而不需要每次都分配一个新名称(例如:Zombie zombie1 = new Zombie();
)
这是一个非常简单的问题,但我想知道如何创建没有名称的类对象。例如,如果我有一个名为“Zombie”的类,如何创建一个新的对象而不需要每次都分配一个新名称(例如:Zombie zombie1 = new Zombie();
)
new Zombie()
会创建一个新的僵尸实例。但是,如果您不想将其分配给本地变量或数据成员,则不必这样做。例如,您可以将这些僵尸累加到一个集合中:
List<Zombie> undeadLegion = new LinkedList<>();
for (int i = 0; i < 1000; ++i) {
undeadLegion.add(new Zombie());
}
new Zombie()
来创建未绑定的数据。您不必给它一个特定的名称;它可以是(命名)数组的未命名成员。// Create a new ArrayList<> and bind it to the name list.
List<Zombie> list = new ArrayList<Zombie>();
// Create new Zombie objects, but do not name them.
// Instead, add them to the list.
for (int i = 0; i < 5; ++i) {
list.add(new Zombie());
}
void a()
{
b(new Zombie());
}
void b(Zombie z)
{
}
new Zombie()
并没有在 a
中命名——但是一旦它被传递给 b
,它就与 z
绑定了。new Zombie();
对象没有名称。不能给对象分配名称,也无法在运行时(通过调试信息)找出它的名称。
你可能想表达的是,如何避免声明一个命名引用对象。
最简单的方法是将引用作为表达式使用,例如:
System.out.println(new Zombie());
对象没有名称。变量有名称。你不必把new
的结果存储到变量中:例如,你可以直接将其作为参数传递,或者只是丢弃它。
new Zombie()
)而不将其分配给变量。doThingsWithZombie()
的方法,它需要一个Zombie
对象,你可以这样做:doThingsWithZombie(new Zombie());
你也可以将新对象添加到列表中:
LinkedList<Zombie> zombieList = new LinkedList<Zombie>();
zombieList.add(new Zombie()); // Add a zombie
zombieList.add(new Zombie()); // Add a zombie
zombieList.get(0) // Gets the first zombie