异常java.lang.NullPointerException [英] Exception java.lang.NullPointerException

查看:309
本文介绍了异常java.lang.NullPointerException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Iam在使用java的Windows版本的桌面应用程序中工作。在我的应用程序中,需要搜索所有.php



我使用递归方法;



和REGEX



我的代码:

  import java.io.File; 


public class Copier {
public static void find(String source,String rep)
{
文件src = new File(rep);
if(src.exists()&& src.isDirectory())
{
String [] tab = src.list();
(String s:tab)
{
文件srcc = new File(rep +\\+ s);
if(srcc.isFile())
{
if(srcc.getName()。matches(。*+ source +$))
System.out。的println(一个或多个);
}

else
find(source,srcc.getAbsolutePath());
}
}
}

public static void main(String [] args)
{
find(。php, C:\\);
}
}

但我有这个例外:

 线程main中的异常java.lang.NullPointerException在Copier.find(Copier.java:11)​​

Copier.find(Copier.java:21)
(Copier.java)
=h2_lin>解决方案

更改主要如下,用于调试目的。

  public static void main(String [] args)
{
try {
find(。php,C:\\);
} catch(Exception e){
e.printStackTrace();
}
}

并在

$中添加一个空值检查b
$ b

  if(src!= null&& src.exists()&& src.isDirectory())

编辑:



以下适用于我,(我正在使用Windows 7)。

  import java.io.File; 

public class Copier {

public static void find(String source,String rep){
文件src = new File(rep);
if(src!= null&& src.exists()&& src.isDirectory()){
String [] tab = src.list();
if(tab!= null){
for(String s:tab){
文件srcc = new File(rep +\\+ s);
if(srcc.isFile()){
if(srcc.getName()。matches(。*+ source +$)){
System.out.println );
}
} else {
find(source,srcc.getAbsolutePath());
}
}
} else {
//System.out.println(list is null);
}
}
}

public static void main(String [] args){
try {
find(。java , C:\\);
} catch(Exception e){
e.printStackTrace();
}
}
}


Iam working in a desktop application for windows version using java. In my application there is a requirement to search all .php

i use recursive methods;

and REGEX

my code :

import java.io.File;


public class Copier {
public static void find(String source,String rep)
{
    File src=new File(rep);
    if(src.exists() && src.isDirectory())
    {
        String[] tab=src.list();
        for(String s:tab)
        {
            File srcc=new File(rep+"\\"+s);
            if(srcc.isFile())
            {  
                if(srcc.getName().matches(".*"+source+"$"))
                System.out.println(s);
            }

            else
                find(source,srcc.getAbsolutePath());
        }
    }
}

public static void main(String[] args)
{
    find(".php","C:\\");
}
}

But i have this exception :

Exception in thread "main" java.lang.NullPointerException
    at Copier.find(Copier.java:11)
    at Copier.find(Copier.java:21)
    at Copier.main(Copier.java:28)

解决方案

Change main like below, for debugging purpose.

public static void main(String[] args)
{
    try {
        find(".php","C:\\");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

And add a null check in

if (src != null && src.exists() && src.isDirectory())

Edit:

Below works fine for me, (I am using windows 7).

import java.io.File;

public class Copier {

    public static void find(String source,String rep) {
        File src = new File(rep);
        if (src!= null && src.exists() && src.isDirectory()) {
            String[] tab = src.list();
            if (tab != null) {
                for(String s : tab) {
                    File srcc = new File(rep+"\\"+s);
                    if (srcc.isFile()) {  
                        if (srcc.getName().matches(".*"+source+"$")) {
                            System.out.println(s);
                        }
                    } else {
                        find(source,srcc.getAbsolutePath());
                    }
                }
            } else {
                //System.out.println(" list is null");
            }
        }
    }

    public static void main(String[] args) {
        try {
            find(".java", "C:\\");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

这篇关于异常java.lang.NullPointerException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆