问题描述
publicclasstest2{staticclassInner{privatetest2aa(){returntest2.this;}}publicStringtoString(){return"yes";}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubInnerdni=newInner();System.out.println(dni.aa());}}
中的returntest2.this;
这里应该如何修改?现在是错误的。因为我把内部类设成static,所以这个就出错了
解决方案
解决方案二:
返回test2.this的目的是什么?test2没实例化对象,这里直接调用this肯定报错的。你可以returnnewtest2();
解决方案三:
Quote: 引用1楼sum_rain的回复:
返回test2.this的目的是什么?test2没实例化对象,这里直接调用this肯定报错的。你可以returnnewtest2();[/quote上面解释有误。因为Inner是静态的,所以,在test2没有实例化(this也就没有具体指向)的前提下就可以访问,而这种情况下,this就没有意义了。如果要使用this,必须将static去掉,那么可以通过newtest2().newInner()创建内部类的实例化对象,因而可以使用newtest2()对应的this了。
解决方案四:
不知道你要什么效果,只是返回一个test2对象?returnnewtest2();解决方案五:
问题描述不清时间: 2024-08-31 03:28:44