我创建了一个函数,我在其中通过数组沿其索引发送数据,以便特定值转换为二进制,但我不知道我是否正确发送和返回数组。
我的代码:
package GA;
public class test {
public void chr_intval(){
double [] array = new double[100] ;
int i=1;
array[i] = 4;
System.out.println(Genes(array,i)); // print the value contain array[1] in binary
}
@SuppressWarnings("null")
public double[] Genes(double[] j,int i){ // get the value from 1st index that is 4 hardcoded
double [] a1=null;
int k=9;
//a1[k]=0;
double d=j[i];
while(d>1)
{
a1[k--]=d%2;
d=d/2;
}
return a1;// return the value in binary that is 100
}
public static void main(String[] args) {
test a = new test();
a.chr_intval();
}
}
在控制台:
Exception in thread "main" java.lang.NullPointerException
at java.io.Writer.write(Unknown Source)
at java.io.PrintStream.write(Unknown Source)
at java.io.PrintStream.print(Unknown Source)
at java.io.PrintStream.println(Unknown Source)
at GA.test.chr_intval(test.java:10)
at GA.test.main(test.java:41)
答案 0 :(得分:3)
这是一个问题:
@SuppressWarnings("空&#34)
另外,你的
private char [] Genes(double [] array,int i){ // TODO自动生成的方法存根 return null; }
返回空值。
答案 1 :(得分:0)
从不执行Genes1(),您将从Gene()方法返回null。
答案 2 :(得分:0)
这种情况正在发生,因为您的Genes方法返回null。 println()函数不知道如何处理null值,因此抛出NullPointerException。
只需编辑您的函数即可返回null以外的其他内容。