请问一下大家这段代码由上面问题?为什么会报错?

问题描述

在jdk1.4下执行为什么会报错?publicclassTestInnerClass{TestInnerClassout;TestInnerClass.Innerin=null;publicvoidmainMethod(){out=newTestInnerClass();in=out.newInner();in.run();}classInner{publicvoidrun(){outerMethod();}voidinnerMethod(){System.out.println("innerMethod");}}voidouterMethod(){System.out.println("outerMethod");in.innerMethod();}publicstaticvoidmain(String[]args){newTestInnerClass().mainMethod();}}

解决方案

解决方案二:
in.run();程序执行到此方法时,在内部类调用了外部类的outerMethod();方法,而此时并没有外部类被实例化,导致外部类声明的变量TestInnerClassout;TestInnerClass.Innerin=null;都为null,导致空指针异常
解决方案三:
in=out.newInner()说明in是out的内嵌类对象,在in.run()中执行outerMethod()实际上是调用out.outerMethod()。执行outerMethod()过程中会执行in.innerMethod(),而对于out来说其属性in为空(TestInnerClass.Innerin=null),这样一来,执行到in.innerMethod()时就会报空置针异常(java.lang.NullPointerException)。

时间: 2024-10-29 00:31:30

请问一下大家这段代码由上面问题?为什么会报错?的相关文章

这段代码哪里错了,一直在报错

问题描述 这段代码哪里错了,一直在报错 Date t = new Date(); long l = t.getTime(); Timestamp time = new Timestamp(l); Connection con = DBUtils.getConnetion(); String sql = ""select * from book_pl group by bookname having pl_date = ? order by avg(book_score) desc&qu

c#-C# Winfrom项目,运行程序一段时间后提示“内在不足”的报错信息。

问题描述 C# Winfrom项目,运行程序一段时间后提示"内在不足"的报错信息. 在C# Winfrom项目,有一个form窗体,六个Panel控件(用于放置显示监控视频图像的用户自定义控件), 还有一个timer计时器控件(设置每隔2分钟调用其它六个监控视频图像放到对应的Panel控件) 目前遇到的问题是,监控点的视频图像有的由于网络好点显示加载视频图像快点,有的由于网络不是太好加载显示视频图像慢点. 在form窗体运行一段时间后,导致这个form窗体的六个Panel控件在轮流显示

oc-请大神看看 这是哪里出的毛病 刚刚学OC 跟视频里的代码一样 为啥我这个总是报错啊?

问题描述 请大神看看 这是哪里出的毛病 刚刚学OC 跟视频里的代码一样 为啥我这个总是报错啊? 这是xcode6.3里的代码: #import int main() { NSlog(@"第一个OC程序!!!"); return 0; } 用Mac 自带的终端编译后: zhuxunandeMac-mini:OC语言程序 shukyokunan$ cc -c 第一个OC程序.m 第一个OC程序.m:5:5: warning: implicit declaration of function

为什么我在vs.net2003中把代码复制到剪贴板程序总是报错

问题描述 为什么我在vs.net2003中把代码复制到剪贴板程序总是报错?有没有谁遇到过这个问题,请赐教哦!

求助!androidstudio修改代码后git提交修改为何报错没有匹配GIT

问题描述 求助!androidstudio修改代码后git提交修改为何报错没有匹配GIT Commit failed with error: pathspec 'src/main/java/app/leeweather/com/myapplication/MainActivity.java' did not match any file(s) known to git. 我是修改了主活动,新建了一个布局文件,然后提交的. 解决方案 git修改提交 解决方案二: 试着让你的本地仓库git fetc

求救:请问如何把这段代码改为泛型

问题描述 .将下面的代码改成泛型:PublicclassSimple(intvalue){this._Value=value;}PrivateintSimple;PublicintSimple;{Return_Value;}小弟就要面试,各位老大给点帮助吧,小弟感激不尽!2 解决方案 解决方案二:没看懂你这段代码解决方案三:看不懂,不知道是什么意思!猜了下哈,LZ是不是要这样:publicclassSimple<T>{publicSimple(Tvalue){_value=value;}pri

代码-vc 6.0 error c2491 报错啊,头大

问题描述 vc 6.0 error c2491 报错啊,头大 简单又奇怪的问题又来了... debug版完全正常:release版报错c2491. definition of dllimport function not allowed. (我是接手的别人的项目,项目工程代码里没有看到有dllimport 或者是其他明显的问题啊). 解决方案 检查一下你Release版本跟Debug版本的工程配置,尤其预编译宏的设置. 应该有宏定义不一致,导致dllexport,dllimport的导入 解决方

代码-A类使用static块报错 java.lang.NoClassDefFoundError

问题描述 A类使用static块报错 java.lang.NoClassDefFoundError java.lang.NoClassDefFoundError: Could not initialize class XXXclass 是什么原因? 有两台服务器 一台启动正常 一台启动不正常 报了这个 我是跑任务的时候 写了个类,直接调 A.aaa(),好像根本就没执行static静态代码块里面的方法. A里面有个static静态块,里面的方法没执行就报错了. 解决方案 可能原因是在执行A.aa

代码-java连接hadoop hdfs文件系统报错

问题描述 java连接hadoop hdfs文件系统报错 10C 报错信息:java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.; Host Details : local host is: ""localhost.local