2012-01-26 12 views
0

私はfloat値のリストを作成しようとしているが、それはそれが正しい。この方法ではないようだ。 EDIT:リストの作成方法<Float>?

public Supervisory() { 
    this.analogs = new ArrayList<Float>(); 
} 

public void active() { 
    try { 
     for (ObjectIdentifier oi : ois) { 

      if (oi.getObjectType().intValue() == 2){ 
       analogs.add(new Float(10)); 
      } 
     } 

    } catch (IOException ioe) { 
     throw new RuntimeException(ioe.getMessage()); 
    } catch (Exception ex) { 
     throw new RuntimeException(ex.getMessage()); 
    } 
} 

私の最後のコードでは、私の問題のアイデアを与えるためにちょうどスニペットました。

この実装で何が問題になっていますか?メソッドに次の2行

this.analogs = new ArrayList<Float>(); 
analogs.add(new Float(10)); 

+1

これはあなたのコードからの正確なスニペットですか? –

+1

ここで、解読はどこですか?初期化はどこですか?エラーは何ですか? –

+0

また、メソッド内の行を呼び出すためにすべての答えが表示されるのはなぜですか?なぜコンストラクタにはないのですか? –

答えて

6

、それだけでクラスの周りに浮くことができません。

public class MyClass { 
    private List<Float> analogs; 

    public void X() { 
     this.analogs = new ArrayList<Float>(); 
     analogs.add(new Float(10)); 
    } 
} 

またはコンストラクタで:

public class MyClass { 
    private List<Float> analogs; 

    public MyClass() { 
     this.analogs = new ArrayList<Float>(); 
     analogs.add(new Float(10)); 
    } 
} 
+1

しかし、なぜ私はコンストラクタの 'アナログ'属性を初期化できませんか? –

+0

私の編集を見ることができます。 – Tudor

+0

@Valter、あなたのコードのコンストラクタはどこですか? – shift66

3

場所はあなたのanalogsは、クラスのフィールドであり、これらの線はanalogsの宣言の後に来ています。あなたはメソッド内のコードを配置する必要があり

関連する問題