Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法在应返回-1时返回NullPointerException_Java_Arrays - Fatal编程技术网

Java 方法在应返回-1时返回NullPointerException

Java 方法在应返回-1时返回NullPointerException,java,arrays,Java,Arrays,只要我输入的名称在目录中,下面的代码就可以正常工作。如果目录中不存在该名称,则返回NullPointerException。我不明白,因为如果目录中不存在该名称,它应该只返回-1。为什么会有例外?谢谢你的指导 public class Direct{ //Directory is a class that contain a name and get/set methods for it. private Directory[] directory = new Directo

只要我输入的名称在目录中,下面的代码就可以正常工作。如果目录中不存在该名称,则返回NullPointerException。我不明白,因为如果目录中不存在该名称,它应该只返回-1。为什么会有例外?谢谢你的指导

public  class  Direct{
    //Directory is a class that contain a name and get/set methods for it.
    private Directory[] directory = new Directory[100];

        public int find(String name){
            for (int x=0; x < directory.length; x++){
                if (directory[x].getName().equals(name)){ //exception refers to this line to hold the error
                    return x;
                }
            }
            return -1;
        }
}



//Testing on main method

Direct direct = new Direct();

//This works cos the name John is in the directory.
System.out.println(direct.find("John"));

This returns an error cos x is not present in the directory.
System.out.println(direct.find("x"));
公共类直接{
//目录是一个包含名称和get/set方法的类。
私有目录[]目录=新目录[100];
公共整数查找(字符串名称){
for(int x=0;x
当您创建长度为
100
目录
数组时,它从100个
null
引用开始。您已到达所有已填充的现有
目录
对象(如果有),并且在到达数组末尾之前已到达
null
引用


在访问
getName()
之前,测试
目录[x]
是否为
null
。由您决定是立即在
null
数组元素上返回
-1
,还是继续搜索数组。

当您创建长度
100
目录
数组时,它从100个
null
引用开始。您已到达所有已填充的现有
目录
对象(如果有),并且在到达数组末尾之前已到达
null
引用


在访问
getName()
之前,测试
目录[x]
是否为
null
。由您决定是立即在
null
数组元素上返回
-1
,还是继续搜索数组。

当您创建长度
100
目录
数组时,它从100个
null
引用开始。您已到达所有已填充的现有
目录
对象(如果有),并且在到达数组末尾之前已到达
null
引用


在访问
getName()
之前,测试
目录[x]
是否为
null
。由您决定是立即在
null
数组元素上返回
-1
,还是继续搜索数组。

当您创建长度
100
目录
数组时,它从100个
null
引用开始。您已到达所有已填充的现有
目录
对象(如果有),并且在到达数组末尾之前已到达
null
引用


在访问
getName()
之前,测试
目录[x]
是否为
null
。由您决定是立即在
null
数组元素上返回
-1
,还是继续搜索数组。

目录[x]。getName()
为null。首先检查它是否为null,然后执行
.getName()

目录[x]。getName()
为null。首先检查它是否为null,然后执行
.getName()

目录[x]。getName()
为null。首先检查它是否为null,然后执行
.getName()

目录[x]。getName()
为null。首先检查它是否为null,然后执行
.getName()

您是否用一些目录对象初始化了
目录数组
您用一些目录对象初始化了
目录数组
您用一些目录对象初始化了
目录数组
您用一些目录对象初始化了
目录数组
您是否用一些目录对象初始化了
目录数组
谢谢它能工作。我(错误)的理解是,如果名称不为=null,它应该一直循环到最后。谢谢,它可以工作。我(错误)的理解是,如果名称不为=null,它应该一直循环到最后。谢谢,它可以工作。我(错误)的理解是,如果名称不为=null,它应该一直循环到最后。谢谢,它可以工作。我(错误)的理解是,如果名称不是=null,它应该一直循环到最后。