我认为是
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/