我正在尝试将布尔数组复制到另一个布尔数组中。这就是我在尝试:
public class Nucleo {
private boolean[] nivel;
public Nucleo(boolean[] carga, double x, int i){ //Copy the array
for(int j=0; j<carga.length; j++){
nivel[j]=carga[j];
}
x=potencia;
i=porcentaje;
}
我从boolean[] carga
发送数组main
。像这样:
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean[] niveles = new boolean[8];
rellniveles(niveles);
Nucleo nivel1= new Nucleo(niveles, 5, 4);
nivel1.getPotencia();
}
public static void rellniveles(boolean[] niv){ //Fill the array
niv[0]=true;
niv[1]=true;
niv[2]=true;
niv[3]=true;
niv[4]=true;
niv[5]=true;
niv[6]=false;
niv[7]=false;
}
如果我尝试使用"System.arraycopy( carga, 0, nivel, 0, carga.length );"
我收到错误:"Source not found".
我正在使用Eclipse。我在System.arraycopy()中遇到此错误i.imgur.com/pbGrKz6.png
答案 0 :(得分:3)
Arrays.copyOf(boolean[] original, int newLength)可以帮到你。
E.g:
public Nucleo(boolean[] carga, double x, int i) {
this.nivel = (carga == null) ? null : Arrays.copyOf(carga, carga.length);
...
}
答案 1 :(得分:1)
当您尝试访问您无权访问的方法的源代码时,Eclipse会抛出该消息。这并不意味着您的代码中存在任何错误。
您正在寻找的方法,System.arrayCopy()是Java核心库的一部分,因此可以在src.zip中找到它应该包含在您的JDK中。
以下链接说明了如何将其链接到Eclipse环境 - http://veerasundar.com/blog/2011/08/attaching-java-source-with-eclipse-ide/
但是,在这种情况下,System.arrayCopy()不是用Java实现的,而是本机的,所以你将无法查看源代码,至少不是Java源代码。
如果您在复制数组时遇到实际问题(从您的问题中看不清楚) - 那么按照上面的timonik示例可能有所帮助。