2

ブール配列を別のブール配列にコピーしようとしています。これは私がしようとしていることです:

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".

私はエクリプスを使用しています。System.arraycopy() i.imgur.com/pbGrKz6.png でこのエラーが発生します

4

2 に答える 2

3

Arrays.copyOf(boolean[] original, int newLength)が役立ちます。

例えば:

public Nucleo(boolean[] carga, double x, int i) {
    this.nivel = (carga == null) ? null : Arrays.copyOf(carga, carga.length);
    ...
}
于 2013-02-19T12:43:44.683 に答える
1

このメッセージは、アクセス権のないメソッドのソースコードにアクセスしようとすると、Eclipseによってスローされます。コードにエラーがあるという意味ではありません。

探しているメソッドであるSystem.arrayCopy()は、Javaのコアライブラリの一部であるため、JDKに含まれている必要があるsrc.zipにあります。

次のリンクは、Eclipse環境にリンクする方法を説明しています-http: //veerasundar.com/blog/2011/08/attaching-java-source-with-eclipse-ide/

ただし、この場合、System.arrayCopy()はJavaで実装されていませんが、ネイティブに実装されているため、少なくともJavaソースコードではなく、ソースコードを調べることはできません。

配列のコピーで実際に問題が発生している場合(質問からは明らかではありません)、上記のtimonikの例に従うと役立つ場合があります。

于 2013-02-19T13:00:38.947 に答える