2016-07-01 9 views
1

これは、Java内部クラスの問題であり、コードは以下の通りである:線でJavaの内部クラスの使用

public class Load { 
    /* 
    static { //load 
     System.loadLibrary("lvb"); 
    }*/ 

    public class FILTER_T{ 

     HP05_T hp; 
     LP40_T lp; 
     NOTCH50_T notch; 
     // Load.FILTER_T.HP05_T hp; 
     // Load.FILTER_T.LP40_T lp; 
     // Load.FILTER_T.NOTCH50_T notch; 

     public class HP05_T { 
     public int[] buf; 
     public long y1; 
     public long y2; 
     public int ptr; 
     } 

     public class LP40_T { 
      public int[] buf; 
      public int ptr; 
     } 
     public class NOTCH50_T { 
      public int[] buf; 
      public int ptr; 
     } 

    } 

    public native void func1(FILTER_T filter); 

    public native int func2(FILTER_T filter, int in); 

    public native int[] func3(int a,int[] in,FILTER_T filter); 

    public static void main(String[] args) { 
     Load load = new Load(); 
     load.FILTER_T ff = new load.FILTER_T(); 
     load.func1(ff); 
     load.func2(ff, 120); 
    } 

} 

load.FILTER_T ff = new load.FILTER_T(); 

コンパイルエラーがある:

error: package load does not exist

私は誰かが問題を抱えていてそれを修正する方法を知っているのだろうかと思います。

+0

囲むインスタンス式は、変数の型宣言ではなく、インスタンス化式でのみ必要です。 –

+0

'FILTER_T ff = new FILTER_T();'をプレフィックスなしで使うことができます。 –

+0

なぜ彼らは内部クラスですか?それらは囲むインスタンスへのant参照を必要としないように見えるので、内部クラスではなく静的入れ子クラスである可能性があります。あなたの命名はJavaの規約を尊重するものではありません。とにかく、構文は 'FILTER_T ff = load.new FILTER_T();' –

答えて

6

これは内部の非静的クラスです。あなたはそれをインスタンス化するために外部クラスのインスタンスを私たちに教えてください。ただし、正しい構文は次のとおりです。

FILTER_T ff = load.new FILTER_T(); 
関連する問題