• 由于线程停在某个无法进行垃圾回收的点(可能是因为已对代码进行了优化),因此无法计算表达式的值


    由于线程停在某个无法进行垃圾回收的点(可能是因为已对代码进行了优化),因此无法计算表达式的值.

    先说下我出现这个异常情况的条件:我是在做WEB服务接入时,发生的,为了调用接口的方法,我先封装了一次,封装方法有2个参数,都是类类型。其它的这种方法都可以,只有这一个接口不通过。例如这个封装的方法叫M1,那它是这样的M1(class1 c1,class2 c2),其中在调用它时,c1,c2都是正常的,属性和字段都有值。但跟踪到这个方法时,通过看c1,c2的值会发现c1,c2中的属性就会有:由于线程停在某个无法进行垃圾回收的点(可能是因为已对代码进行了优化),因此无法计算表达式的值

    但字段是好的。当时我想难道是类型属性的问题,又一行一行的检查了一下,发现没有问题啊。于是把两个类中的成员全注释。发现还是有这个问题。

    在网上搜索了一些内容,没有任何帮助,都是按情况解决的。不具有通用性。

    通过这个例子,看到构造器时,灵光一闪,终于发现了问题所在。原来是构造器的参数过多造成的。这个接口有150多个属性,所以我构造了一个150个参数的构造器。

    改过之后,就好了。

    所以,出现这个问题,所得经验如下:

    1 与计算机系统无关,

    2 与vs2008环境无关

    3 与vs2008配置项无关

    4 检查代码吧,是代码的问题。

  • 相关阅读:
    CentOS 7.3 CDH 5.10.0 Druid0.12.4安装记录
    cloudera manager卸载流程
    CDH5.10.0 离线安装(共3节点) 转
    CentOS 7 安装Httpd(转)
    CentOS下MySQL的彻底卸载
    CentOS7 修改主机名
    sendEvent()
    QSignalMapper Class
    ubuntu12.04开启虚拟机的unity模式
    BCM_I2C函数更改
  • 原文地址:https://www.cnblogs.com/jams742003/p/3656489.html
Copyright © 2020-2023  润新知