首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在这种情况下我不能将' this‘传递给内部类的方法?

在Java中,关键字"this"用于引用当前对象。当在内部类中使用"this"时,它指的是内部类的实例而不是外部类的实例。因此,在内部类的方法中将"this"传递给其他方法时可能会引起问题。

首先,内部类有访问外部类实例的特权,它可以通过"外部类名.this"来引用外部类的实例。如果将"this"传递给内部类的方法,可能会引起混淆,因为内部类的方法也可以通过"this"来引用内部类的实例。

其次,在内部类中使用"this"传递给方法时,由于内部类和外部类的作用域不同,可能会导致编译错误或运行时错误。内部类可以访问外部类的成员,包括方法和变量。但是,内部类的方法在编译时将被编译成独立的方法,它无法访问外部类的非静态成员。因此,将"this"传递给内部类的方法可能会导致无法访问外部类的成员或出现编译错误。

为了避免这种情况,可以使用外部类的实例来传递给内部类的方法,而不是使用"this"关键字。例如,可以在外部类的方法中创建内部类的实例,并使用外部类的实例来调用内部类的方法。这样可以确保内部类的方法能够正确地访问外部类的成员。

在腾讯云的产品中,与云计算相关的产品有云服务器(https://cloud.tencent.com/product/cvm)、云数据库MySQL版(https://cloud.tencent.com/product/cdb_mysql)、云原生容器服务(https://cloud.tencent.com/product/tke)等。这些产品可提供稳定、安全、高效的云计算服务,帮助用户构建和部署各种应用。

相关搜索:在C#中,为什么我不能将StringReader传递给带有Stream参数的方法?为什么我不能将List <Customer>作为参数传递给接受List <object>的方法?为什么我不能将url中的参数直接传递给MVC中的方法(该参数始终为空)?我可以在不编辑类方法本身的情况下添加到方法中吗?为什么ByteBuffer putShort(值)的方法在我的情况下不能正常工作?为什么我的父项列表在不添加项的情况下不断增长为什么在我的函数中,parseInt不返回我传递给它的字符串中的0?FreeRTOS:一种在不阻塞列表迭代的情况下延迟列表内成员函数的方法我可以在不指定数字的情况下将参数传递给String.Format吗?为什么Typescript允许我在不指定必填字段的情况下创建对象?为什么要购买域名?我可以在不注册的情况下拥有自己的网站吗?为什么我的基于SOAP的项目在不包含Apache CXF依赖项的情况下工作?为什么我在计算对象中得到的对象属性是未定义的,而不是对象本身?在这种情况下,哪种方法更适合?为什么我的解析器无法在不崩溃的情况下将精灵绘制到屏幕上?为什么可以在不包含任何模块的情况下使用current_user、authenticate_user!等辅助方法为什么我的身份验证中间件在没有提供令牌的情况下将请求传递给授权筛选器?有没有一种方法可以在不启动应用的情况下从Siri启动应用内购买,而是在Intents扩展中运行代码?为什么我无法在不丢失所有数据的情况下将文本放入我的堆叠条形图(使用geom_bar的of图)中?什么是允许mocha测试存根/模拟fs的真实方法,这样我就可以在不访问磁盘的情况下测试函数?我正在尝试找到一种方法,在不违反gdpr /隐私的情况下,根据电子邮件地址从我的系统中识别已删除的用户帐户
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么推荐另外2种快速几百G文件方法

引言 是@程序员小助手 Rman,昨天看到一个题目,说两台PC之间快速几百G文件,有没有什么好办法。 考虑到操作系统平台,有Windows,Linux,MaxOS,这些都有差异。...所以给出了5种解决方法。但是只说了其中三种。参看 两台电脑之间如何快速传输几百G文件?-两台,传输,文件,电脑 ? 这里说说为什么推荐另外2种。 一个是网络存储。...这个在国外,是Dropbox,是google cloud,是微软OneDrive,国内就是百度云盘,各个厂商云盘。...为什么推荐,因为pandownload被举报,开发者收监,百度名声臭不可救药。所以推荐。 国外网速,你我都是知道。 还有一个是,软件共享。 有人说这很简单啊,局域网有QQ,不就行了?...回答发出后,有不少网友回复说, “直接拔下来硬盘,接到新主机上。新主机启动,挂载为新磁盘,立马可用!” 这个也是经不起推敲

2.8K10

死磕Java内部类(一篇就够)

为什么需要内部类为什么部类(包括匿名内部类、局部内部类),会持有外部类引用? 为什么匿名内部类使用到外部类方法局部变量时需要是final类型? 如何创建内部类实例,如何继承内部类?...内部类能够更好封装,聚,屏蔽细节 我们Jobrun方法中,打印了外部WorkermJobList列表中剩余Job数量,代码这样写没问题,但是细想,内部类是如何拿到外部类成员变量呢?...为什么部类(包括匿名内部类、局部内部类),会持有外部类引用? 问这个问题,显得是个杠精,您先别着急,其实想问是,内部类Java是怎么实现。...方法局部内部类这里就不赘述了,原理都是一样,大家可以自行试验。 这样我们算是解答了第二个问题,来看第三个问题。 为什么匿名内部类使用到外部类方法局部变量时需要是final类型?...如果将age改为private,编译器会在Demo类中生成二个方法,分别用于读取age和设置age,篇幅关系,这种情况留给大家自行测试。 解答为何局部变量传递给匿名内部类需要是final?

95830
  • Java基础系列(三十):局部内部类,匿名内部类

    What 局部内部类就是定义某个方法内部部类,它作用域仅限于这个方法。 Why 当我们在外围类中定义部类仅仅在某个方法中使用了一次,这种情况下,我们就可以选择去使用局部内部类。...看到这里,相信大部分人会有疑问,为什么beep变量被回收,但是actionPerformed方法仍然可以调用到这个方法?...当创建一个对象时候,beep就会传递给构造器,并存储val$beep域中。...:创建一个实现ActionListener接口新对象,需要实现方法定义括号。...与常规内部类不同地方是,静态内部类可以有静态域和方法,声明接口中部类自动生成static和public类。

    74030

    【C++修行之道】类和对象(六)再谈构造函数(初始化列表)| explicit关键字 | static成员 | 友元|匿名对象|拷贝时一些编译器优化

    ,构造函数体中语句只能将其称为赋初值,而不能称作初始化。...0; } 六、拷贝对象时一些编译器优化 参和返回值过程中,一般编译器会做一些优化,减少对象拷贝,这个一些场景下还是非常有用。...例如 A a1 = 1;,在这种情况下,编译器会识别出这是一个对象初始化过程,可以直接调用构造函数,而不是先创建临时对象再调用拷贝构造函数。 当函数调用跨越不同表达式时,编译器无法进行同样优化。...临时对象:临时对象通常是表达式中临时创建对象,它们生命周期仅限于表达式范围。const 引用允许将临时对象绑定到引用上,从而避免了临时对象拷贝。...引用参:使用 const & 参,函数接收是对象引用,而不是对象本身。引用仅占用指针大小空间,涉及对象拷贝。因此,传递引用比传递整个对象更加高效。 ​

    9210

    与C++类和对象宿命(下)

    因为这个是默认成员函数,我们写,编译器默认生成 就是我们在这里些&d1 &d2 默认调用了两个operator &函数 为什么说是两个呢?...涉及权限放大和缩小 被我拷贝一份,给你进行赋值操作 又不改变本身 指向内容const才会存在权限放大和缩小问题 上面的是const Date * 指向内容都改变不了...这意味着你可以创建外部类对象情况下创建内部类对象: ```C++ Outer::Inner innerObj; // 创建内部类对象,而不需要外部类对象 但在某些设计中,内部类可能需要一个外部类对象来操作外部类成员...这种对象通常被立即使用,并且不需要在变量中保存引用。匿名对象通常用于简化代码结构,特别是需要临时对象但不需要它们长期存在或复用情况下。...如果多个地方需要使用相同对象,建议使用具名对象。 8.对象拷⻉时编译器优化 •现代编译器会为了尽可能提⾼程序效率,不影响正确性情况下会尽可能减少⼀些参和返回值过程中可以省略拷⻉。

    19810

    C++之类和对象

    想你作为用户来说,肯定也是希望一个应用在保证功能前提下越小越好,所以这种方案没有被采纳。...这种方式我们看来已经相当不错了,不用再将每个函数地址都单独存储起来,除了成员变量以外只是多存放了一个地址不过是四个字节而已。但是这种方式大佬看来还是不够完美,所以还有第三种方法。...默认成员函数 如果类中什么成员也写,就称之为空类,空类中真的什么都没有吗?其实并不是,任何类什么都不写情况下编译器会自动生成六个默认成员函数。...构造函数虽然可以重载,但是无参和全缺省是不能构成重载,因为调用时候这两种函数都可以参会产生二义性。...,那就因小失大了,所以最好办法就是讲运算符重载写在类里面,否则是无法访问到成员变量: ---- 那么为什么写运算符重载时候只了一个参数,而且是需要加天数而不对象呢?

    1.2K00

    C++之面向对象(下)

    ) d2.Print(); } 但是这样代码可读性会降低,如果我们希望构造函数中存在隐式类型转换情况,可以使用explicit关键字禁止构造函数隐式类型转换。...,但不是类成员函数 友元函数不能用const修饰 因为友元函数没有this指针,它是一个类外函数,不过可以访问类成员。...特殊,我们可以定义一个没有名字对象——匿名对象。 这种对象生命周期只有它定义所在那一行,运行到下一行就会销毁,属于一次性对象,所以不需要命名。...参和返回值过程中,一般编译器会做一些优化,减少对象拷贝,这个一些场景下还是非常有用。...描述该对象具有那 些属性,那些方法,描述完成后就形成了一种新自定义类型,采用该自定义类型就可以实例化出具体对象。

    38740

    类和对象(3)

    初始化,构造函数体中语句只能将其称为赋初值,而不能称作初始化。..._a2初始化时,_a1是未定义(即处于未初始化状态),但C++标准并不要求在这种情况下编译器产生错误或警告。...非静态成员函数可以调用类静态成员函数吗?  可以。静态成员函数属于类本身,而非类某个特定对象。非静态成员函数则依赖于类特定实例,所以它们可以没有任何对象实例情况下被调用。...Solution().Sum_Solution(10); return 0; } 拷贝对象时一些编译器优化 参和返回值过程中,编译器会做一些优化,减少一些对象拷贝。...描述该对象具有那些属性,那些方法,描述完成后就形成了一种新自定义类型,才用该自定义类型就可以实例化具体对象。

    5810

    【C++】类和对象(完结篇)

    : 虽然经过上述构造函数调用之后,对象中成员变量已经有了一个初始值,但是不能将其称为对对象中成员变量初始化,构造函数体中语句只能将其称为赋值。...道理好像是这样,但是呢?看这种情况: 我们现在给这个类里面再增加一个const成员变量。 那这时我们再去运行程序: 哦豁,发生错误了,这么回事? 为什么会这样呢?...但是大家说当前这种方法好吗? 其实是不太好为什么?...当然如果是私有的情况下,这样写是不是统统不行啊: 那我们就可以写一个Get方法: 成员函数是需要通过对象去调用。 这样就可以了。 那如果我们程序是这样呢?...那除此之外,某些参和返回值过程,也会有这样优化。

    17210

    C++:类与对象(3)

    一、深入解析构造函数 如上图,在一般情况下,我们认为A类中_a1和_a2只不过是声明,并没有开空间,而真正空间开辟是【定义】时候,也就是我们根据这个类实例化出整个对象时候。...,构造函数体中语句只能将其称为赋初值,而不能称作初始化。...这样虽然可以解决问题,但是也会有另一个问题就是这个count是一个全局变量,也就是说有可能在写程序时候会不小心修改它,比如说++了一下 这就很尴尬了,所以我们希望该变量可以构造函数里被访问到,...但是希望他全局被访问到,,这个诉求要怎么实现呢??...2、函数中返回对象时,尽量返回匿名对象 3、条件允许情况下,用引用返回,避免拷贝返回值带来损耗。 七、类和对象思想转变 现实生活中实体计算机并不认识,计算机只认识二进制格式数据。

    10410

    【java】浅谈java内部类

    部类使用方式实际上总共包括:成员内部类方法部类,匿名内部类,下面,就给大家来一一介绍: 为什么要使用内部类 有的时候你可能有这样一种需求:对一个类(假设它为MyClass.java)创建一个和它相关类...(假设它是Part.java),但因为Part.java和MyClass之间联系“紧密”且“单一”,导致我们在这种情况下希望像下面这样增加一个额外兄弟类 ├─MyClass       └─Part...,内部类声明数据会覆盖外部类同名数据。...final修饰 这里要注意一点, 局部类所使用部类方法形参必须用final修饰,否则会编译不通过,也就是说传入后不许改变 为什么这个方法形参一定要用final修饰?  ...(基本类型数据拷贝副本,对象等则拷贝引用) OK,现在情况是: 方法部类对data拷贝了两次:外部方法outterPrint值传递时拷贝,和LocalInner构造函数拷贝 方法除了局部类作用域只拷贝了

    1K101

    Android常见问题及开发经验总结(四)

    这个建议使用,因为 一是有被回收危险,导致值为空,二是会有值需要清理问题。 什么意思呢?这个说来话长 ,简单来说 是因为静态变量和类一样都是进程加载时候被加载,进程结束时候被结束。...,内部使用二分法对key进行排序,所以添加、删除、查找数据时候,都会使用二分法查找,只适合于小数据量操作,如果在数据量比较大情况下,那么它能将退化。...因为使用Bundle场景大多数为小数据量,没见过两个Activity之间传递10个以上数据场景,所以相比之下,在这种情况下使用ArrayMap保存数据,操作速度和内存占用上都具有优势,因此使用...非静态内部类会隐式持有外部类引用,就像大家经常将自定义adapterActivity类里,然后adapter类里面是可以随意调用外部activity方法。...当你将内部类定义为static时,你就调用不了外部类实例方法了,因为这时候静态内部类持有外部类引用。声明ViewHolder静态内部类,可以将ViewHolder和外部类解引用。

    42730

    Java内部类详解

    2.局部内部类   局部内部类是定义一个方法或者一个作用域里面的类,它和成员内部类区别在于局部内部类访问仅限于方法或者该作用域。...代码中需要给按钮设置监听器对象,使用匿名内部类能够实现父类或者接口中方法情况下同时产生一个相应对象,但是前提是这个父类或者接口必须先存在才能这样使用。...静态内部类是不需要依赖于外部类,这点和类静态成员属性有点类似,并且它不能使用外部类非static成员变量或者方法,这点很好理解,因为没有外部类对象情况下,可以创建静态内部类对象,如果允许访问外部类非...从前面可以知道,静态内部类是不依赖于外部类,也就说可以创建外部类对象情况下创建内部类对象。...三.内部类使用场景和好处   为什么Java中需要内部类

    44310

    (21) 内部类本质 计算机程序思维逻辑

    成员内部类还可以通过"外部类.this.xxx"方式引用外部类实例变量和方法,如Outer.this.action(),这种写法一般重名情况下使用,没有重名的话,"外部类.this."...test中,方法部类只能在定义方法被使用。...方法部类可以访问方法参数和局部变量,这是通过构造方法中传递参数来实现,如OuterInner构造方法中有参数int param,新建OuterInner对象时,Outer类将方法参数传递给了内部类...使用场景 方法部类都可以用成员内部类代替,至于方法参数,也可以作为参数传递给成员内部类。不过,如果类只某个方法被使用,使用方法部类,可以实现更好封装。...此外,new时参数2和3也传递给了构造方法,内部类构造方法又将它们传递给了父类构造方法。 使用场景 匿名内部类能做方法部类都能做。

    76880

    From Java To Kotlin:空安全、扩展、函数、Lambda很详细,这次终于懂了

    Kotlin 里面,代码末尾分号省略写,就像这样: var price = 100 // 默认推导类型为: Int 另外,由于 Kotlin 支持类型推导,大部分情况下,我们变量类型可以省略写,...如果写这样代码: val i: Double = null // 编译器报错 以上代码并不能通过 Kotlin 编译。...$StaticInnerClass 持有外部类引用。 Java 当中嵌套类,默认情况下,没有 static关键字 时,它就是一个内部类,这样部类是会持有外部类引用。...Kotlin 则恰好相反,默认情况下,嵌套类变成了静态内部类,而这种情况下嵌套类是不会持有外部类引用。只有当我们真正需要访问外部类成员时候,我们才会加上 inner 关键字。...Kotlin对此并没有进行限制,但是通常建议Lambda 表达式中编写太长代码,否则可能会影响代码可读性。 Lambda也可以理解为是匿名函数简写。

    1.2K80

    【C++】————类和对象(下)

    平常写代码过程中,还是建议大家去写这种构造函数,因为这种构造函数满足场景更加多样,值也可以,值当然也可以。..._day; } 这种就是我们拷贝构造函数,其实就是一个对象别名,然后将这个对象值赋给另一个对象,这就叫拷贝构造。...const引用或const指针可以绑定到const对象,从而避免对const对象直接修改。 避免权限放大方法调用const对象时,使用const引用或const指针。...静态全局变量:限制了该变量作用域仅在当前文件可见,避免了命名冲突。...B就可以访问A中私有成员,但是A不可以访问B私有, 也就是A把B当成朋友了,但是不能说明B把A当成朋友 七、内部类部类其实就是一个类中再去定义一个类: 内部类,内部类是外部类私有 一个类中

    8810

    没有任何类型 Windows 外层实例可访问---Java内部类与外类型

    局部内部类       局部内部类,是指内部类定义方法和作用域。...Thinking in Java给了这么两个例子: 定义方法: public class Parcel4 {      public Destination destination...,但只是作用域不同而已,只方法或条件作用域才能使用,退出这些作用域后无法引用。...,而是内部类进来参数通过自己构造器备份到了自己内部,自己内部方法调用实际是自己属性而不是外部类方法参数。  ...,如果编程人员程序设计时候在内部类中改掉参数值,但是外部调用时候又发现值其实没有被改掉,这就让人非常难以理解和接受,为了避免这种尴尬问题存在,所以编译器设计人员把内部类能够使用参数设定为必须是

    1.5K80

    没有任何类型 Windows 外层实例可访问---Java内部类与外类型

    局部内部类       局部内部类,是指内部类定义方法和作用域。...Thinking in Java给了这么两个例子: 定义方法: public class Parcel4 {      public Destination destination(String...,但只是作用域不同而已,只方法或条件作用域才能使用,退出这些作用域后无法引用。...,而是内部类进来参数通过自己构造器备份到了自己内部,自己内部方法调用实际是自己属性而不是外部类方法参数。  ...,如果编程人员程序设计时候在内部类中改掉参数值,但是外部调用时候又发现值其实没有被改掉,这就让人非常难以理解和接受,为了避免这种尴尬问题存在,所以编译器设计人员把内部类能够使用参数设定为必须是

    1.1K20

    Java面试系列8

    而通常部类需要在外部类实例化后才能实例化。 三、Servlet执行时一般实现哪几个方法?...(断言) assertion (断言)软件开发中是一种常用调试方式,很多开发语言中都支持这种机制。...还可以基础上启用或者禁用断言。 可以预计正常情况下不会到达任何位置上放置断言。 断言可以用于验证传递给私有方法参数。...不过,断言不应该用于验证传递给公有方法参数,因为不管是否启用了断言,公有方法都必须检查其参数。 不过,既可以公有方法中,也可以非公有方法中利用断言测试后置条件。...而后可在同一session范围用getAttribute(“student”)取出该属性,得到student对象。 六、GC是什么?为什么要用它?

    69450
    领券