精华内容
下载资源
问答
  • addRoom.setOnClickListener(new android.view.View.OnClickListener(){ public void onClick(View v) { builder = new AlertDialog.Builder(RoomSet.this);...为什么①处会出现空指针异常。。。
  • import java.io.*; public class Dir { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub File f=new File("d:\\");...}
  • [img=https://img-bbs.csdn.net/upload/201706/11/1497161349_481197.png][/img] 第15行报空指针异常
  • 源自:2-6 后台程序的实现为什么用eclipse EE会出现空指针异常org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet [search] in context with path [/studyajax] threw ...

    源自:2-6 后台程序的实现

    为什么用eclipse EE会出现空指针异常

    org.apache.catalina.core.StandardWrapperValve invoke

    严重: Servlet.service() for servlet [search] in context with path [/studyajax] threw exception [Servlet execution threw an exception] with root cause

    java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException

    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)

    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)

    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

    at java.lang.ClassLoader.defineClass1(Native Method)

    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)

    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)

    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3205)

    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373)

    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861)

    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)

    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

    at com.zkp.SearchServlet.doGet(SearchServlet.java:40)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)

    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)

    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)

    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2549)

    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2538)

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.lang.Thread.run(Thread.java:619)

    提问者:听雨111610

    2018-06-11 19:20

    展开全文
  • importjava.util.Scanner;classQujian{floatx1,x2,y1,y2;Qujian(floatx1,floatx2,floaty1,floaty2){this.x1=x1;this.x2=x2;this.y1=y1;this.y2=y2;}booleaninclude(Qujianq){if(this....import java.util.Scanner;...

    importjava.util.Scanner;classQujian{floatx1,x2,y1,y2;Qujian(floatx1,floatx2,floaty1,floaty2){this.x1=x1;this.x2=x2;this.y1=y1;this.y2=y2;}booleaninclude(Qujianq){if(this....

    import java.util.Scanner;

    class Qujian{

    float x1,x2,y1,y2;

    Qujian(float x1,float x2,float y1,float y2){

    this.x1 = x1;

    this.x2 = x2;

    this.y1 = y1;

    this.y2 = y2;

    }

    boolean include(Qujian q){

    if(this.x1<=q.x1&&this.x2>=q.x2&&this.y1<=q.y1&&this.y2>=q.y2)return true;

    else return false;

    }

    }

    public class Zju1139 {

    public static void main(String args[])throws Exception{

    Scanner in = new Scanner(System.in);

    while(in.hasNext()){

    int a = in.nextInt();

    int count = 0;

    Qujian[] q = new Qujian[a];

    for(int i=0;i

    q[i].x1 = in.nextFloat();

    q[i].x2 = in.nextFloat();

    q[i].y1 = in.nextFloat();

    q[i].y2 = in.nextFloat();

    }

    for(int i=0;i

    展开全文
  • 空指针就是空引用,java空指针异常就是引用本身空,却调用了方法,这个时候就会出现空指针异常。可以理解,成员变量和方法是属于对象的(除去静态),在对象中才存在相对应的成员变量和方法,然后通过对象去调用这些...
    df770bde70518e23bd8cb4cb4d1793fc.png

    一.什么是java空指针异常

    我们都知道java是没有指针的,这里说的"java指针"指的就是java的引用,我们不在这里讨论叫指针究竟合不合适,而只是针对这个异常本身进行分析。空指针就是空引用,java空指针异常就是引用本身为空,却调用了方法,这个时候就会出现空指针异常。可以理解,成员变量和方法是属于对象的(除去静态),在对象中才存在相对应的成员变量和方法,然后通过对象去调用这些成员变量和方法。对于空指针来说,它不指向任何对象,也就没有所谓的成员变量和方法,这个时候用它去调用某些属性和方法,当然会出现空指针异常。

    如下面示例会发生空指针异常:

    Object object = null;String objStr = object.toString();
    c8842b465b314293813dd2b4a3828968.png

    从类结构图来看,空指针它是属于运行时异常 RuntimeException 的子类,它不是捕获型的,只有在程序运行时才可能报出来,而且会造成程序中断。

    避免空指针

    1. 比较字符串时,模板在前,如:

     String str = null; if("test".equals(str)){ //do something }

    2.使用String.valueOf()而不是toString()

    Object obj = null;String test = String.valueOf(obj);

    3.初始化默认值

    import org.apache.commons.lang3.StringUtils;SysUsers sys = new SysUsers();String demo = StringUtils.EMPTY;

    4.集合相关判断

    • 举个 Map 例子

    合理使用contains(),containsKey,containsValue等方法,如:

    Map map = new HashMap();map.containsKey("test");map.containsValue("test");

    在返回一个集合的话,默认会是 null,统一规范返回一个空集合。

    • 举个 List 例子,如:
    public List getUserList(){ List list = userMapper.gerUserList(); return list == null ? new ArrayList() : list;}

    这样接收方就不用担心空指针异常了,也不会影响业务。

    5.使用Assertions(断言),如:

    Object obj = null;assert obj != null;String test = obj.toString();

    此时如果str为空,那么则抛出java.lang.AssertionError异常而不是空指针异常

    6、Optional

    Optional 是 JDK 8 新增的新特性,再也不用 != null 来判断了,这个在一个对象里面的多个子对象连续判断的时候非常有用。

    感兴趣可查看optional相关资料

    https://blog.csdn.net/zknxx/article/details/78586799

    展开全文
  • 配置文件没有错误,也都注入了,但是一直提示空指针异常…就不知道是哪里出了问题
  • 今天突然想不用mybatis只用Spring来调取mysql的链接,于是这样配置了下,发现在service的实现层获取不到链接,空指针异常,问题代码是出在 connection=ds.getConnection();这句话上 这是为什么?有大佬解决下吗? ...
  • //这里空指针异常 } bufr.close(); } catch (IOException e1) { e1.printStackTrace(); } } }); menu.add(menuItem_1); JScrollPane scrollPane = new ...
  • 栈长之前也分享几篇避免空指针的文章,空指针异常神鬼莫测,它几乎可以出现在程序中的任何位置,想尝试捕获处理是不太切实际的。背景我们一般要通过 JVM 异常报告的代码位置去处理,JVM 打印出导致空指导异常的...

    913412676017a70a985067dbf2d2eeba.png

    相信在坐的每一位 Java 程序员都遇到过空指针异常: NullPointerException(NPE),不甚其烦。

    栈长之前也分享几篇避免空指针的文章,空指针异常神鬼莫测,它几乎可以出现在程序中的任何位置,想尝试捕获处理是不太切实际的。

    背景

    我们一般要通过 JVM 异常报告的代码位置去处理,JVM 会打印出导致空指导异常的详细类名、方法名以及行号,如以下异常所示:

    Exception in thread "main" java.lang.NullPointerException
        at Test.main(Test.java:3)
    

    很显然,Test 类的 main 方法第 3 行发生了空指针异常,如果第 3 行的代码是:

    javastack.name = ‘栈长’;

    这时候我们肯定能判定 javastack 对象为 null,如果是下面这段呢:

    javastack.name = params.user.name;

    以下这 e 个对象都可能为空:

    • javastack
    • params
    • user

    这时候就无法通过 JVM 报告的位置所判定到底是哪个变量为空了,每一个对象都可能是空指针的入口,只能通过输出日志或者 Debug 调试去跟踪了。

    如果 JVM 可以提供足够明确的信息以显示空指针异常的具体来源,而无需额外的代码、工具来定位,那么这对开发人员、或者线上问题定位都举足轻重。当然,这个在商业 JVM 早就做到了,Java 14,它现在也终于来了。

    详细的空指针异常信息

    详细可以看官方这篇介绍:

    https://openjdk.java.net/jeps/358
    Exception in thread "main" java.lang.NullPointerException:
            Cannot read field "name" because "params.user" is null
        at Test.main(Test.java:3)
    

    如上所示,会给出详细的发生空指针异常变量路径。

    另外,如果是下标式访问的赋值语句,如 a[i][j][k] = 2020; 抛出空指针,那会是这样的:

    Exception in thread "main" java.lang.NullPointerException:
            Cannot load from object array because "a[i][j]" is null
        at Test.main(Test.java:18)
    

    注意:在同一行上显示异常类型、异常消息会导致行很长,所以为了保持可读性,会在第二行显示详细异常信息。

    另外,这个功能在 Java 14 默认情况下是不开启的,可以使用以下 JVM 参数进行切换:

    开启:-XX:+ShowCodeDetailsInExceptionMessages
    关闭:-XX:-ShowCodeDetailsInExceptionMessages

    为什么现在默认不开启?

    1)性能

    如果应用程序频繁地抛出并打印异常堆栈消息,势必会带来一定的开销、影响性能,所以应尽量避免这种开销。

    2)安全

    这个会导致更多源代码的暴露,如果这个不能接受,则不应由 JVM 配置应用程序打印,而应捕获并丢弃。

    3)兼容性

    过去的 JDK 都是不打印详细空指针异常信息的,JVM 相关工具要依赖于异常消息的准确格式,有可能会存在兼容性问题。

    所以,这个特性暂时默认是关闭的,在未来不久的版本中会默认开启。

    好了,今天就到这了,关注Java技术栈,新特性实战陆续更新中,第一时间推送。历史 Java 8 - 14 新特性教程可以关注我获取。

    栈长原创和整理不易,觉得文章不错,在看、转发分享给更多的朋友们,总能帮助有需要的人,大家一起流弊~

    展开全文
  • 在向TreeSet中add对象的时候,总是报空指针异常 import java.util.Comparator; import java.util.Iterator; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; import org....
  • 你这个问题的解决问题定位:在堆栈异常信息的第一行就可以定位到是哪里出了...Java 空指针异常的若干解决方案Java 中任何对象都有可能空,当我们调用空对象的方法时就抛出 NullPointerException 空指针异常,这...
  • Spring注入空指针异常

    2019-10-16 18:26:24
    为什么会出现空指针异常 在A类中注入了一个service 且在A类中有方法使用到了注入的service 此时B类调用了A类 B类中没有service数据,此时出现空指针异常 解决方法一 在类A中注入(构造器方式) 在类B中直接注入...
  • 空指针异常

    2021-01-19 16:05:58
    然后看了看自己以前码的,还提示如果对空对象不判断的话会出现空指针异常 然后自己试了一下空对象比较,确实没有异常 最后看了下空指针异常的解释才发现自己之前都疏忽了,只有空对象在调用方法时候才会触发异常,...
  • ListView是一个经常要使用的控件,大部分情况下,我们...在调用这个方法的时候,一旦出现空指针异常,我们的第一反应就是检查ListView有没有实例化,但是我们发现ListView已经实例化了还是会出现这种异常,这是为什么
  • 下面就带大家分析一下Java中基础类型的包装类在拆箱和装箱过程中都做了什么,为什么会出现空指针异常,以及面试过程中会出现的相关面试题。 问题重现 下面通过一个简单的示例才重现一下异常出现的场景。 public ...
  • 二、为什么会出现空指针异常三、怎么解决空指针异常? 一、什么是空指针异常? 我们都知道java是没有指针的,这里说的"java指针"指的就是java的引用,我们不在这里讨论叫指针究竟合不合适,而只是针对这个异常本身...
  • 1.什么是空指针指针只存在于c语言中,Java中是没有指针的,空指针就是空引用,java空指针异常就是引用本身空,却调用了方法,这个时候就会出现空指针异常。可以理解,成员变量和方法是属于对象的(除去静态),在...
  • 空指针就是空引用,java空指针异常就是引用本身空,却调用了方法,这个时候就会出现空指针异常。可以理解,成员变量和方法是属于对象的(除去静态),在对象中才存在相对应的成员变量和方法,然后通过对象去调用这些...
  • 空指针就是空引用,java空指针异常就是引用本身空,却调用了方法,这个时候就会出现空指针异常。可以理解,成员变量和方法是属于对象的(除去静态),在对象中才存在相对应的成员变量和方法,然后通过对象去调用这些...
  • 1.什么是空指针指针只存在于c语言中,Java中是没有指针的,空指针就是空引用,java空指针异常就是引用本身空,却调用了方法,这个时候就会出现空指针异常。可以理解,成员变量和方法是属于对象的(除去静态),在...
  • 本文介绍如何避免出现空指针异常。 首先你要知道空指针异常为什么会出现: 引用直接指向空对象,大概率是你没有取到某个对象; 将8种基础类型的封装类赋值给对应的基础类。 接下来看怎么防止异常: 1. 前台...
  • java之空指针异常处理

    2021-02-26 21:31:40
    空指针是我们 Java 开发人员经常遇到的一...所以,一个对象如果没有进行初始化操作,这时候,如果你调用这个对象的方法或者变量,就会出现空指针异常。 如示例会发生空指针异常: Object object = null; String string
  • Exception in thread ...有人说:如果新线程使用的外部对象在老线程中被释放,而新线程继续使用是就会出现空指针异常 请求大神帮忙,还是不知道问题在哪,下面贴出部分代码;传入的值肯定不空,是什么原因呢
  • java空指针异常:预防及解决办法

    千次阅读 2020-02-11 11:26:27
    这是我16年在博客园发的一篇博客,彼时还在学校。...空指针就是空引用,java空指针异常就是引用本身空,却调用了方法,这个时候就会出现空指针异常。可以理解,成员变量和方法是属于对象的(除...
  • Java---浅谈空指针异常

    2019-06-16 12:36:46
    空指针就是空引用,java空指针异常就是引用本身空,却调用了方法,这个时候就会出现空指针异常。可以理解,成员变量和方法是属于对象的(除去静态),在对象中才存在相对应的成员变量和方法,然后通过对象去调用...
  • 所以,一个对象如果没有进行初始化操作,这时候,如果你调用这个对象的方法或者变量,就会出现空指针异常。 如下面示例会发生空指针异常: Object object = null; String string = object.toString(...
  • 空指针就是空引用,java空指针异常就是引用本身空,却调用了方法,这个时候就会出现空指针异常。可以理解,成员变量和方法是属于对象的(除去静态),在对象中才存在相对应的成员变量和方法,然后通过对象去调用...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 295
精华内容 118
关键字:

为什么会出现空指针异常