您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么我将null作为数组的值?

为什么我将null作为数组的值?

您正在阴影变量:

public Hra1()
{
    // the following variable's *scope* is inside of this constructor only
    // outside of the constructor, the local variable below doesn't exist.
    Mince [] poleMinci = new Mince[20];

    poleMinci[0] = new Mince("st?íbrná", "coin.png");
    poleMinci[3] = new Mince("st?íbrná", "coin.png");
    poleMinci[4] = new Mince("zlatá", "coin_gold.png");
    poleMinci[8] = new Mince("st?íbrná", "coin.png");
    poleMinci[10] = new Mince("st?íbrná", "coin.png");
    poleMinci[12] = new Mince("st?íbrná", "coin.png");
}

在该构造函数中,由于poleMinci是在构造函数内部声明的,因此仅在构造函数内部可见。如果您在类中具有相同名称的变量,则该变量将为null。要解决此问题,请不要在本地重新声明该变量。做:

public Hra1()
{

    // Mince [] poleMinci = new Mince[20]; // **** not this ****
    poleMinci = new Mince[20]; // **** but this. note the difference? ****

    poleMinci[0] = new Mince("st?íbrná", "coin.png");
    poleMinci[3] = new Mince("st?íbrná", "coin.png");
    poleMinci[4] = new Mince("zlatá", "coin_gold.png");
    poleMinci[8] = new Mince("st?íbrná", "coin.png");
    poleMinci[10] = new Mince("st?íbrná", "coin.png");
    poleMinci[12] = new Mince("st?íbrná", "coin.png");
}

有关此问题的更多信息,请查看Variable Shadowing。大多数IDE都会警告您您可能正在执行此操作,或者设置了允许他们执行此操作的设置。我使用Eclipse并将IDE设置为警告我。您可能也希望这样做。

其他 2022/1/1 18:28:45 有495人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶