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

当我在不同的类中从构造函数转到主方法时,我丢失了数据。这是怎么回事?

当您在不同的类中从构造函数转到主方法时丢失数据的原因可能是由于数据的作用域或生命周期的问题。以下是可能导致数据丢失的几种常见情况:

  1. 数据作用域问题:如果您在构造函数中创建了一个局部变量,并且该变量在构造函数结束后就不再可用,那么在主方法中就无法访问该变量。解决方法是将变量声明为类的成员变量,以便在整个类中都可以访问。
  2. 对象引用问题:如果您在构造函数中创建了一个对象,并将其赋值给一个局部变量,然后在主方法中尝试访问该对象,但发现对象为空或未初始化,那么可能是因为对象引用丢失。这可能是由于对象的作用域问题或者在构造函数中未正确初始化对象。解决方法是确保对象的作用域正确,并在构造函数中正确初始化对象。
  3. 数据传递问题:如果您在构造函数中创建了一个对象,并将其传递给主方法,但在主方法中无法正确接收到该对象,那么可能是由于参数传递的问题。请确保在构造函数和主方法之间正确传递对象,并检查参数类型和顺序是否匹配。
  4. 数据持久化问题:如果您在构造函数中创建了一个对象,并对其进行了修改,但在主方法中发现对象的状态未被保留,那么可能是由于数据持久化的问题。请确保在构造函数中对对象进行的任何修改都能正确地保存和传递给主方法。

总结起来,当您在不同的类中从构造函数转到主方法时丢失数据,可能是由于作用域、对象引用、数据传递或数据持久化等问题导致的。您可以仔细检查代码,确保数据在不同类之间正确传递和保留。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基础 | 详细图解jQuery对象,以及如何扩展jQuery插件

因此当我们直接使用$('#test')创建一个对象,实际上是创建了一个init实例,这里正真构造函数是原型init方法。...也就是说,当我们通过jQuery.extend扩展jQuery方法被添加到了jQuery构造函数,而当我们通过jQuery.fn.extend扩展jQuery方法被添加到了jQuery原型。...其实在上一篇文章,关于封装一个对象,跟大家分享一个非常非常干货,但是却只有少数几个读者老爷get到知识,那就是封装对象,属性和方法可以具体放置三个位置,并且对于这三个位置不同做了一个详细解读...而在实现jQuery扩展方法想法,一部分方法需要扩展到jQuery构造函数,一部分方法需要扩展到原型当我们通读jQuery源码,还发现有一些方法放在模块作用域中,至于为什么会有这样区别,建议大家回过头去读读前一篇文章...直到segmentfault在给题建议如何快速学习一门诸如react/vue这样流行框架,找到了一个好一点思路,于是就有这样一系列文章,虽然它并不全面,很多知识没有涉及到,但是其实是围绕最终通过模块化来构建自己代码这样一个思路来总结

63720
  • 十三、jQuery过时今天,你还会使用它吗

    ROOT.jQuery = ROOT.$ = jQuery; 因此当我们直接使用$('#test')创建一个对象,实际上是创建了一个init实例,这里真正构造函数是原型init方法。...也就是说,当我们通过jQuery.extend扩展jQuery方法被添加到了jQuery构造函数,而当我们通过jQuery.fn.extend扩展jQuery方法被添加到了jQuery原型。...上面的例子也简单展示jQuery内部,许多方法实现都是通过这两个扩展方法来完成。...其实在上一篇文章,关于封装一个对象,跟大家分享一个非常非常干,但是却只有少数几个读者大佬get到知识,那就是封装对象,属性和方法可以具体放置三个位置,并且对于这三个位置不同做了一个详细解读...实现jQuery扩展方法,一部分方法需要扩展到构造函数,一部分方法需要扩展到原型当我们通读jQuery源码,还发现有一些方法放在模块作用域中,至于为什么会有这样区别,建议大家回过头去读读前一篇文章

    1.4K20

    架构探索之会话状态、Web Farm、负载均衡器

    还介绍实时生产环境中会话行为细节。希望您能喜欢这篇文章并提供宝贵建议和反馈。 什么是Session? Web是无状态,这意味着每次将页面发布到服务器都会重新创建网页新实例。...以下是使用会话基本优点和缺点。稍后时间点,详细描述每种类型会话。 优点: 它有助于整个应用程序维护用户状态和数据。 这很容易实现,我们可以存储任何类型对象。 分开存储客户数据。...由于涉及序列化和反序列化开销,这种方法有几个缺点,它也增加了数据访问成本,因为每次用户检索会话数据,我们应用程序都会遇到不同进程。 ?...它将数据保存在一个集中位置(数据库)。 当我们需要实现更安全会话,我们应该使用SQLServer会话模式。 如果出现频繁服务器重启,这是一个理想选择。...这是网络农场和网络花园场景完美模式(在后面详细解释这一点)。 当我们需要在两个不同应用程序之间共享会话,我们可以使用SQLServer会话模式。

    1.4K30

    单点登录是怎么回事

    一、网站登录是怎么回事 一个普通网站开发,Web Server怎么知道当前用户是谁? ? 1. 典型WEB 典型WEB应用,应用大致包含三数据:用户数据、权限数据、业务数据。...③ 用户登录后访问子系统更新个人信息 用户登录后,跳转到子系统系统查询当前用户信息,并同子系统进行比较,如有变更则更新本地用户信息。...② 将权限统一管理 在用户管理系统,同时定义角色、权限等信息,系统实现用户权限设置,并在用户跳转到子系统,能够准确读取到用户本系统授权信息。...子系统读取到userId这个cookie后,知道这是登录用户id,数据读取对应用户信息并保存到Session即可。...子系统读取到这个userId后,知道这是登录用户id,数据读取对应用户信息并保存到Session即可。

    1.6K31

    一次有意义前端面试总结

    获得面试机会 该哪里讲起呢,就从看到那个公司招聘信息讲起吧,当我还在江西老家时候就打算年后来深圳找工作,所以我来深圳之前就通过Boss直聘和一些技术社区查找深圳前端开发工程师招聘信息,并投递了部分简历...,再安排其他时间面试,到了深圳后发Email告诉对方来深圳元宵节假期结束后第一天上班,对方发来了回复邮件,让HR为安排面试时间,下午HR便打电话给我,通知去面试,并通过Email将面试时间和地址发给了我...还有一题要求写出add(4)(5)实现函数,看到这题后一脸懵逼,函数不都是只有一个括号吗,这里怎么出现两个括号,面试结束后通过一个前端交流群里问了这个问题,这题考察函数柯里化,还有一题要求使用...:localStorage 可以实现数据永久保存,sessionStorage 存放数据,当浏览器关闭后会自动丢失。 面试官: 知道元素层叠吗?...:你能不能在纸上写一下(当时没听懂),两个都可以让对象调用函数,其中apply第一个参数为调用函数对象,第二个参数为函数传递数据,其中apply传递数据是数组,call巴拉巴拉。

    42620

    【笔记】《C++Primer》—— 第19章:特殊工具与技术

    当我们重载这些函数,我们需要定义全局作用域或作用域中,当我们将这些函数定义为成员,它们将是隐式静态,我们无需声明static。...,编译器只能保证不同类型名字是不同 RTTI关键用处在于当我们想为具有继承关系实现相等运算符,如果我们想到用虚函数让派生和基返回比较结果,但是我们equal为了保证接受不同类型必须接受基引用...匿名定义一般就是用在包装 C11允许union有含有构造和拷贝函数成员,但是当我们对这样成员进行更改时就需要自己允许其构造或析构函数了,这种状态控制一般也是通过外面包装接口函数和判别式来控制...,让外部访问不同成员按照情况析构union目前成员,构造成员 19.7 局部类 类似于嵌套,局部类是定义函数内部,局部类定义只定义它作用域中可见 局部类特点是其所有成员都必须在内完成定义...典型不可移植特性是2.1说到算术类型不同机器上差异 可以将其数据成员定义为位域(bit-field),一个位域中含有一定数量二进制位数据,定义方式是Bit name: bitCount;

    84840

    Java系列:构造函数重载和普通函数那些事~

    上次我们简单介绍Java构造函数,对于构造函数想大家应该也有一定了解,那么今天我们来看看构造函数普通函数有那些区别? Java上篇:Java:对象and?...可以有很多个构造函数,但我们知道它们函数参数是不一样;多个构造函数加上构造函数重载,这样可以衍生出很多个函数当我初始化对象,就可以表达出对象多种初始化行为,这也是构造函数重载一个作用...上面说完匿名构造函数构造函数,似乎我们忘掉了普通函数,不捉急,这里我们就来说说普通函数,关于Java普通函数,和其他语言有一点点不同,那就是Java函数不能单独存在,必须要定义。...但需要注意方法定义不能产生嵌套包含关系,不能随便套娃哦~ 关于普通函数返回值,方法定义返回值与传递参数类型均为Java定义数据类型,方法也可以进行返回数据处理,简单格式如下: return...返回数据类型 void 不返回数据类型 当我们定义函数方法后,函数便会对函数进行调用,Java方法定义,它是不会自动执行,如果想要执行,应进行方法调用。

    78040

    AOP编程之AspectJ实战实现数据无痕埋点

    看到没有,LinearLayoutTestActivity除了加载布局操作外,并没有干其他什么,但当我点击菜单跳转到该Activity,onCreate方法和参数被打印出来,甚至LinearLayoutTestActivity...这是RelativeLayoutTestActivity调用testAOP()我们源码: 下面是反编译代码,读者只要关注testAOP()方法即可 我们不难发现我们代码轻松被AspectJ...AspectJ通过目标里面加入Closure(闭包),该类构造函数包含了目标实例、目标方法参数、JoinPoint对象等信息,同时该类作为切点原方法执行代理,该闭包通过Aspect调用Around...” 注解方法构造函数。...5、MyLinearLayout 可,在这里给onMeasure方法上注解,当我进入LinearLayoutTestActivity ,运行如下: ?

    2.9K20

    如何通俗理解面向对象编程

    在这个名为Python Shorts系列文章将解释Python提供一些简单但非常有用构造、一些基本技巧以及数据科学工作中经常遇到一些用例。 这篇文章是关于解释OOP外行方式。...怎么回事可以用函数做同样事情吗? 是的,你可以。但是与函数相比,确实为你提供很多功能。举个例子,str有很多为对象定义函数,我们只需按tab键就可以访问这些函数。...Wikipedia来看,封装是指将数据与操作该数据方法捆绑在一起,或者限制对对象某些组件直接访问。 所以这里str绑定数据(“Hello!)以及所有对我们数据进行操作方法。...我们账户余额如预期增加了100。所以这是我们调用同一个函数。现在,只有self和myAccount是完全相同对象,才会发生这种情况。调用时候账户存款(100)。...简单地说,iPhone1现在可以访问iPhone定义所有变量和方法本例,我们不必进行任何代码复制,因为我们已经从父iPhone继承(获取)所有方法。因此,我们不必再次定义调用函数

    1.3K20

    Flutter学习笔记:BottomNavigationBar实现多个Navigation

    最近研究一下Flutter,但是使用Navigator时候遇到了一个很头痛问题,就是当我们去来回切换导航按钮,Flutter会重新build,从而导致控件重新Build,从而会失去浏览历史。...第1-4行,我们定义两个路由名称:/和/ detail 第7行,我们定义TabNavigator构造函数。 这需要一个navigatorKey和一个tabItem。...第22行,我们定义一个_routeBuilders方法,它将``WidgetBuilder与我们定义两条路径每一条相关联。...1_4_rjL1Hh_zKHJHjO4MNOIg.gif app消失,我们回到了屏幕! 这是因为我们没有指定应该如何处理后退按钮。...1_qQW2iGXiWL2F1tu6cLQfwg.gif 需要注意一点是,当我Android上推送新路线,会底部滑入。 相反,惯例是iOS上右侧滑入。

    4.3K20

    【愚公系列】软考高级-架构设计师 008-存储技术(磁盘)

    数据备份和恢复:磁盘用于备份重要数据,以便在数据丢失或系统故障进行恢复。 多媒体存储:用于存储大量多媒体内容,如视频、音乐和图片。...2.练习 1、磁盘调度管理,通常( )(2019下半年试题) A.先进行旋转调度,再进行移臂调度 B.访问不同柱面的信息,只需要进行旋转调度 C.先进行移臂调度,再进行旋转调度 D.访问同一磁道信息...先进行旋转调度,再进行移臂调度: 这个顺序是不合逻辑,因为磁头没有移动到指定柱面之前,旋转调度是没有意义。 B. 访问不同柱面的信息,只需要进行旋转调度: 这是错误。...首先,磁头需要移动到目标柱面上(移臂调度),然后等待磁盘旋转,使目标扇区旋转到磁头下方(旋转调度)以进行数据读写。 D. 访问同一磁道信息,只需要进行移臂调度: 这个说法不正确。...这反映磁盘访问过程自然顺序,首先是磁头移动到正确柱面上,然后磁盘旋转到正确位置以访问数据。这个过程是优化磁盘访问时间和提高磁盘I/O性能关键。

    16500

    java数组 初始化_用Java初始化数组「建议收藏」

    与C编程语言类似,Java数组元素零开始,一直扩展到元素 – 1 。 我们可以在上面看到ia每个元素都设置为零(似乎是通过数组构造函数)。 那是吗?...例如,某些几何计算,我们可能需要将二维数组初始化为单位矩阵(除沿对角线那些零以外所有零)。...但是,如果在处理完所有数据之前不知道大小怎么办? 这是否意味着我们必须处理一次以找出数组大小,然后再次处理? 这可能很难做到,尤其是如果我们只有一次机会使用数据。...例如,可以将数组提供给ArrayList构造函数,或者在编译知道初始元素,可以使用List.of()和Arrays.asList()方法。...get ( "three" ) ; 世界, 地图可用于将第三方数据集中出现字符串转换为数据集中一致代码值。

    1.6K20

    译 | 你到底有多精通 C# ?

    重载方法 null 值 转到其他话题之前,让我们仔细了解调用参数数量相同但类型不同重载方法如何处理空值。...初始化 最佳实践建议尽可能避免构造函数初始化,以防止异常。 所有这些对于静态构造函数来说都更加重要。 您可能知道,当我们尝试在运行时实例化静态构造函数,它在实例构造函数之前调用。...这是实例化任何初始化顺序: 静态字段 (仅限第一次访问: 静态成员或第一个实例) 静态构造函数 (仅限第一次访问: 静态成员或第一个实例) 实例字段 (每个实例) 实例构造函数 (每个实例)...然而,该示例说明了为什么构造函数调用虚拟方法可能很危险。当调用它们,它们定义构造函数可能尚未调用,因此它们可能会出现意外行为。 多态性 多态性是不同类以不同方式实现相同接口能力。...话虽如此,但当我调用该方法之前向下转换实例,你能想出一种方法来调用不同方法吗?

    84140

    Windows Phone 8.1 新特性 - 页面导航

    当按下回退键,导航源页面会被回退栈取出显示,这样我们就完成了一个完整页面导航过程。...当我项目中新建一个基本页(BasicPage),Common文件夹中会出现NavigationHelper和其他一些辅助。...而如果我们没有使用NavigationHelper 的话,页面是没有办法正常回退这是怎么回事呢,我们来看看NavigationHelper 构造函数吧: public NavigationHelper...最有还有一点要说明,Windows Phone 8.1 ,页面导航回退,导航源页面会重新Load,对于需要加载数据页面,这种重新加载结果并不是我们想看到。...这里我们可以使用 NavigationCacheMode 来避免这一现象,我们页面构造方法对它进行设置,它是一个枚举类型,有三种枚举值: Disabled 不缓存页面,导航返回重新加载页面 Required

    1K70

    回答一下这 10 个最常见 Javascript 问题

    另外,需要注意是,声明const,必须同时初始化它,因为后面不可在更改它。 Javascript对象是什么 对象只是一种特殊数据。对象拥有属性和方法。...当我们调用函数,括号传递值称为参数。...构造函数是什么 构造函数是一种特殊方法,用于初始化和创建 Javascript 对象。...JavaScript 构造函数和其它语言中构造函数不同。 通过 new 关键字方式调用函数都被认为是构造函数构造函数内部,this 指向新创建对象 Object。...除此之外,我们还必须在内部添加constructor()方法,该方法每次初始化都会调用。 constructor()方法内部,我们添加了属性。

    76720

    函数

    继承体系构造顺序就是到派生,其目的就在于确保对象能够成功地构建。构造函数同时承担着虚函数建立,如果它本身都是虚函数的话,如何确保vtbl构建成功呢?   ...注意:当基构造函数内部有虚函数,会出现什么情况呢?结果是构造函数,虚函数机制不起作用了,调用虚函数如同调用一般成员函数一样。当基析构函数内部有虚函数,又如何工作呢?...当某个析构函数被调用时,其派生析构函数已经被调用了,相应数据也已被丢失,如果再调用虚函数派生版本,就相当于对一些不可靠数据进行操作,这是非常危险。...在这个表是要一个函数地址表,这张表解决继承、覆盖问题,保证其容真实反应实际函数。这样,在有虚函数实例(注:抽象即有纯虚函数不能被实例化。)...如下所示:   注意:在上面这个图中,函数最后多加了一个结点,这是函数结束结点,就像字符串结束符“\0”一样,其标志函数结束。

    85031

    通读审计之AACMS

    老样子,我们 index.php 来进行代码审计。 ? 上来 require 一个文件,我们打开该文件看看里面是怎么玩儿。 ? OK,可以看到定义五个。...不卖关子,其实这里我们忽略一个问题,当我们new对象,会进入到构造方法。来进行初始化操作。构造方法php中有两种格式。1. __construct 魔术方法 2. 将成员方法定义为名。...OK,admin.php入口文件代码处理逻辑我们也搞清楚,接下来我们开始挖掘漏洞。 0x03 宽字节注入漏洞 当我们安装该CMS,我们可以注意到数据库字符集默认是GBK。...这个单引号是函数返回,并不是外来,所以不会被daddslashes影响。当我浏览器上直接提交?...虽然说插入点在input标签value值,PHP做了addslashes函数处理,但是这是在前台,(’)就算被转移成(\’),HTML也不会忽略他,还是把他当成实打实引号解析。

    67520

    Kotlin中级(6)- - - Kotlin继承.md

    Kotlin继承 1.超(Any) Kotlin,所有的都是继承自Any这是一个没有父类型。...即当我们定义各类,它默认是继承于Any 例如: class Person 因为Any这个只是给我们提供equals、hashcode、toString三个方法,我们可以看看Any这个源码实现...并且只定义上面所示三个方法Java,所有的默认都是继承于Object。而Object除了比Any多了几个方法和属性外,没有太大区别。...存在构造函数 当存在构造函数构造函数一般实现基类型参数最多构造函数,参数少构造函数则用this关键字引用即可 class MyView(context: Context?...// 注意,则`final`修饰符在编辑器是灰色,因为Kotlin默认默认是final 那么当一个基去继承另外一个基,第二个基不想去覆盖掉第一个基方法,第二个基方法使用

    60160
    领券