java - 如何在java中实例化多边形数组

标签 java arrays instantiation

认为

 Polygon[] polygon = new Polygon[3];

可以。它完全可以很好地运行"new"行,但是一旦它添加一个点,它就会执行空指针异常。我添加了这样的一点(这里是 NPE)-

polygon[0].addPoint(256, 417);

但是,像下面这样做是可行的,但我不希望有大量的“new Polygon()”。有没有办法像我的第一行代码一样做到这一点?

Polygon[] polygon = { new Polygon(), new Polygon(), new Polygon() };

最佳答案

你必须做这样的事情:

Polygon[] polygons = new Polygon[3];
for (int i = 0; i < polygons.length; i++)
{
    polygons[i] = new Polygon();
}

第一行只是创建一个数组 - 并且数组始终填充空引用(或零值等)。此时还没有创建任何Polygon对象,这就是为什么您尝试使用polygons[0].addPoint您会得到一个NullPointerException .

如果您想使用对新创建的对象的引用来填充它,则需要显式创建这些对象。

关于java - 如何在java中实例化多边形数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140011/

相关文章:

java - 如何基于 CSV 文件创建类的新实例

object - DDD - 聚合根 - 订单和订单行示例

java - Apache Camel 到底是什么?

php - 如果多个复选框在 php 中是动态的,如何存储它们

java - Android 在从服务器接收时读取 JsonArray 中的不同数据

javascript - 如何删除数组中匹配的元素

c# - 如何实例化运行时确定的一定数量的对象?

java - Cupcake(API3) 在 SoundPool 中暂停/停止声音循环的友好方式?有任何想法吗?

java - 正则表达式替换 "["和 "]"

java - 如何在 Controller 方法之前检查参数值格式?