主文件夹中的变量读取而不是测试文件夹

时间:2016-02-22 14:23:56

标签: java

我是java的新手。我遇到了一个奇怪的问题。 这里我在项目中有2个用于main和test的文件夹  [![在此处输入图像说明] [1]] [1]

我在trident.functions中的类中定义了公共静态变量,然后通过获取对象表单类在entities中的另一个类中使用它,这里一切正常,变量读取得很好,因为它保存了一个数字对于我写的等式,然后将结果存储在这个变量中。

我在测试文件夹中遇到问题。当我编写代码时,我调试代码时遇到测试类失败,我发现我之前定义的变量保持为零而不是数字,为什么这个变量没有读取数字,但是它在main之前的其他类之前运行良好?

public class Vector implements Function {
    public static  double num;
    String words[]={"asd","wer","dfdf","rttyy"}
    public  Values getValues(Tweet tweet, String[] words){
    //this part of the code of the variable i defined 

        for(String w:words)
        {
            items.add(w);
        }
        num = items.size();
    }
     public Spar normVector(Spar vector) {
         double z = vector.getnum();
         vector = //some calculations on z ; 
         return vector;
     }
}

另一个班级

public class Spar {
     public double getnum() {
         double x=Vector.num;
         return x;
     }
}

测试课

public class VectorTest { 
    Vector  vb;
    public VectorBuilderTest(String vbr) {
        super(vbr);
        vb = new VectorBuilder();
    }
    public void testNormalizeVector() {
        Spar sp = new Spar(values);
        Spar normalized = vb.normVector(sp);
    }
}

1 个答案:

答案 0 :(得分:1)

代码有几个问题。它甚至都不会编译。

  1. words中的局部变量getValues重复(编译错误)。
  2. 声明方法normVector返回Spar但返回double(编译错误)。
  3. 在测试类中,字段vb未初始化,即为null,因此行Spar normalized = vb.normVector(sp);将抛出NullPointerException(运行时错误)。
  4. 静态变量num仅在方法getValues中设置,但根本不会从测试类中调用。