我是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);
}
}
答案 0 :(得分:1)
代码有几个问题。它甚至都不会编译。
words
中的局部变量getValues
重复(编译错误)。normVector
返回Spar
但返回double
(编译错误)。Spar normalized = vb.normVector(sp);
将抛出NullPointerException
(运行时错误)。num
仅在方法getValues中设置,但根本不会从测试类中调用。