The ONE --Bug记录

http://www.cs.pitt.edu/~pdillon/one/

其中的SWindowCentrality初始化不完整

缺少红色部分

public SWindowCentrality(Settings s)
    {
        if(s.contains(CENTRALITY_WINDOW_SETTING))
            CENTRALITY_TIME_WINDOW = s.getInt(CENTRALITY_WINDOW_SETTING);
        if(s.contains(COMPUTATION_INTERVAL_SETTING))
            COMPUTE_INTERVAL = s.getInt(COMPUTATION_INTERVAL_SETTING);
        this.lastGlobalComputationTime = this.lastLocalComputationTime =
            -COMPUTE_INTERVAL;

    }

 

怪不得,结果奇奇怪怪的。

 

但是,

http://blog.csdn.net/lhooouuu/article/details/6047767

其实问题就在这里,在JAVA中:
Local variables must be initialized before they can be used.
而在类定义中的属性若不赋予初值,则JAVA会自动赋予这个属性一个默认值,以下为类的属性的默认值表:
数据类型                                    默认值
boolean                                    false
char                                           '/u0000'
整形(byte,short,int,long)        0
浮点型(float, double)           +0.0f或+0.0d
参考型                                        null
总结为一句话便是类里定义的数据成员称为属性,属性可不赋初值,若不赋初值则JAVA会按上表为其添加默认值;方法里定义的数据成员称为变量,变量在参与运算之前必须赋初值。

你可能感兴趣的:(The ONE --Bug记录)