转载请注明出处:http://www.cnblogs.com/xunzhaorendaxia/p/8776857.html

本来以为这个bug快改不好了,然而发现了问题所在
copy代码没有完全改掉对象名称,导致对象重复创建了,由于是static所以debug过程中
注释了addProperty(gridRowDetailKeyProperty)
以及引用gridRowDetailKey ()的方法段;
 
public static PropertyDescription gridRowGroupKey = null;
public static PropertyDescription gridRowGroupKey(){
if( gridRowGroupKey== null ){
          // propertyDescription 初始化属性分别为:group section key title dataType visible enable editable
gridRowGroupKey= new PropertyDescription (PropGroup.GridRow, null, FormStrDef.D_GridRowGroupKey,
StringTable.getString(StringSectionDef.S_Form, FormDef..D_GridRowGroupKey),
JavaDataType.USER_STRING, " GridRowType == 'Group', true, true")
}
return gridRowGroupKey;
} public static PropertyDescription gridRowDetailKey = null;
public static PropertyDescription gridRowDetailKey (){
if( gridRowGroupKey== null ){
gridRowGroupKey = new PropertyDescription (PropGroup.GridRow, null, FormStrDef.D_GridRowDetailKey,
StringTable.getString(StringSectionDef.S_Form, FormDef.D_GridRowDetailKey),
JavaDataType.USER_STRING, " GridRowType == 'Fix', true, true")
}
return gridRoDetailKey;
}
 
对象还在,由于效果该属性当为分组行的时候出现
解释:第一次没注释前执行了gridRowDetailKey ()静态方法。使得对象gridRowGroupkey对象重新创建,
            注释后debug ,调用方法gridRowGroupkey()返回的对象已经新创建的对象了。
解决问题的心理表征:
        1.debug找到空指针报错出,发现是Decription为空
            猜测与Decription有关
        2.运行app发现当分组行时可见,后又重现一遍发现是固定行可见,猜测之前观测可能是误会属性名称"所属分组标识"&&"所属明细标识"
            猜测与之前copy的GroupKey属性有关系
        事后重现发现虽然注释的属性出现,但之前的所属分组表示属性已经不在;但是在找问题期间没有注意 
心得体会:
        1,少拷代码,尤其是static属性的,可能会导致别的对象和自己的对象都出问题
        2.  不要懒,多bebug去发现问题来源,出现控制针就去添加该对象的方法里加断点调式,如果是static对象更要注意重头开始运行debug
        才能看清对象创建过程。

copy代码(含static对象)留下的致命错误的更多相关文章

  1. IntelliJ IDEA平台下JNI编程(五)—本地C代码创建Java对象及引用

    本文学习如何在C代码中创建Java对象和对象数组,前面我们学习了C代码中访问Java对象的属性和方法,其实在创建对象时本质上也就是调用构造函数,因此本文知识学习起来也很轻松.有了前面学习数组创建的方法 ...

  2. 非静态代码块(非static初始化块)&静态代码块(static初始化块)

    非静态代码块: TestOrder: package com.aff.singleton; /* 类的第四个成员:初始化块(代码块) 代码块: 如果有修饰的话只能使用static 分类:非静态代码块: ...

  3. static对象的高级用法

    1. 函数里static对象是local的,其他如全局对象,类里的static对象都是非local的,会在程序初始化中提前创建 2. 非local的对象的创建无法确定先后次序,但能保证在main函数前 ...

  4. Oracle03——游标、异常、存储过程、存储函数、触发器和Java代码访问Oracle对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么 ...

  5. python之实现ftp上传下载代码(含错误处理)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之实现ftp上传下载代码(含错误处理) #http://www.cnblogs.com/kait ...

  6. C/C++之全局、static对象/变量的初始化问题

    关于全局.static对象/变量的初始化问题 1. 全局变量.static变量的初始化时机:main()函数执行之前(或者说main中第一个用户语句执行之前). 2. 初始化顺序. 1)全局对象.外部 ...

  7. static对象

    1.static对象包括: global对象 namespace作用域下的对象 在class,function,file作用域内的static对象 2.在方法内的static对象成为 local st ...

  8. java中,静态代码块static的简单简介

    直接上代码,更直观,包括一些解释: /** * 类初始化时,首先加载静态代码块, * 注意:所有静态代码块都会在方法之前执行,不管放置的位置:但是静态代码块按照顺序执行 * 再次执行调用的方法 */ ...

  9. stack与heap、new的内存分配、static对象。(effective c++ 04)

    阅读effective c++ 04 (30页) 提到的static对象和堆与栈对象."不同编译单元内定义的non-local static对象". 了解一下.    目录 sta ...

随机推荐

  1. 搭建maven

    1. 下载安装包 打开网址https://maven.apache.org/download.cgi,找到下面这个文件进行下载 2. 解压安装 解压刚下载地文件到自己想要得目录下 3. 配置环境变量 ...

  2. 如何彻底关闭windows defender

    我是一个喜欢裸奔的人,我不喜欢使用那些安全软件,什么360啊,什么毒霸啊让我深恶痛绝,就连windows自带的杀软我都不能忍啊,因为我平时喜欢找一下软件,很多的补丁和注册机,这些安全软件都会误报,所以 ...

  3. Redis 学习相关的网站

    Redis 命令参考 http://doc.redisfans.com/ https://redis.io/commands http://www.redis.net.cn Redis教程 http: ...

  4. python全栈开发-Day5 集合

    python全栈开发-Day5 集合 一.首先按照以下几个点展开对集合的学习 #一:基本使用 1 .用途 2 .定义方式 3 .常用操作+内置的方法 #二:该类型总结 1. 存一个值or存多个值 只能 ...

  5. 如何在MD(d)和MT(d)工程间正确分配和释放动态内存

    MD(d)和MT(d) MD(d)和MT(d)是windows下VC开发的两个编译选项,表示程序的运行时库编译选项. /MT是"multithread, static version&quo ...

  6. Maven-07: 插件的自定义绑定

    除了内置绑定以外,用户还能够自己选择将某个插件目标绑定到生命周期的某个阶段上,这种自定义绑定方式能让Maven项目在构建过程中执行更多更富特色的任务. 一个常见的例子是创建项目的源码jar包.内置的插 ...

  7. table 表格的增删和修改

    如上图,图片的增删都没有问题:唯一的问题就是我改变下一行的内容时,把上面一行给覆盖了,费了好久,终于找到原因了,直接贴代码: 效果如下:

  8. mysql-5.7.12安装

    CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载   # wget http://dev.mysql.com/get/mysql-communit ...

  9. java中有关流操作的类和接口

    一.java操作l流有关的类和接口 1.File 文件类 2.RandomAccessFile 随机存储文件类 3.InputStream 字节输入流 4.OutputStream 字节输出流 5.R ...

  10. 关于yaml语言

    yaml语言广泛用于书写配置文件. 主要特点如下: 1.使用缩进表示层级关系,缩进使用空格键(非Tab键) 2.缩进的空格数目不要求,只要相同层级的元素左侧对其即可 3.#之后的内容为注释 4.yam ...