2016-08-27 4 views
3

私はclass Mを持っています。クラスの中には、3つのネストされたクラスすなわちClass A, Class B, Class cがあります。java/androidの引数として特定のクラスのネストされたクラスを渡します。

ネストされたクラス(A/B/C)オブジェクトのいずれかをメソッド、つまりdoSomething(***class A/B/C object***)に渡す必要があります。

私の質問はclass M以外のメソッドにClass Mのネストされたクラスの別のオブジェクトを渡す方法ですか? ジェネリッククラスを使用すべきですか?はいの場合は、パラメータを教えてもらえますか?

明確化:

私は、引数とメソッドがM外でなければならないようM.A,M.B,M.Cのインスタンスを渡すことができ、単一の方法をしたいです。

より明確化

私はコードを達成しようとしている何を教えてみましょう。

class Mには、3つのネストされたクラス - A, B, Cがあります。私は

M.A a = (new M()).new A(); 
M.B b = (new M()).new B(); 
M.C c = (new M()).new C(); 

によりA、B、Cのオブジェクト/インスタンスを作成 今は機能doSomething()を有するA、B、Cによって記憶された値を操作します。 私は、どのように私は、B、Cを渡すことができるような機能doSomething()を宣言するために、私は質問の意味は何

`doSomething(a);` 
`doSomething(b);` 
`doSomething(c);` 

のように、異なる時間にdoSomething()からa,b,cを通過したいですか?

実際のプロジェクトでは、ネストされたクラスは約20です。これらのネストされたクラスのインスタンスに対して操作するために、同じ機能をdoSomething()に何度も書きたくありません。

dosomething()は、class Mの範囲外です。

ありがとうございました。

+0

「入れ子になったクラス(A/B/C)オブジェクトをメソッドに渡す必要があるとはどういう意味ですか?doSomething(***クラスA/B/Cオブジェクト*** )? " A、B、またはCのいずれかを渡すことができる単一のメソッドを必要としますか、または3つの異なるメソッドを必要としますか?また、これらのメソッドは 'M'の内側か' M'の外側になければなりませんか? – CKing

+0

@CKing私は、A、B、Cを渡すことができ、メソッドはMの外になければならない単一のメソッドが必要です。混乱して申し訳ありません。私は質問を更新します。 – tpk

+0

できるだけ多くの情報を広告に提供する必要があります。 A、B、Cのインスタンスをメソッドに渡すか、メソッドのClass引数を渡すかは、まだ述べていません。 – CKing

答えて

1
class M {  
    static class A implements I { 
     public void whatever(){} 
    } 
    static class B implements I { 
     public void whatever(){} 
    } 
    static class C implements I { 
     public void whatever(){} 
    } 
    interface I { 
     void whatever(); 
    } 
} 

class C { 
    void doSomething(Class<I> clazz){} 

    void doSomething(I i){} 

    public static void main(String[] args){ 
     doSomething(M.A.class); 
     doSomething(new M.B()); 
    } 
} 
+0

ネストされたクラスオブジェクトをdoSomething(MA a)のような引数。doSomething(int i)のような整数オブジェクトを渡すのと同じように – tpk

+0

'doSomething(Class clazz)'と 'doSomething(MAclass)'のように? – Oliveira

+0

そうです。関数doSomething()を宣言する方法と、オブジェクトを引数として渡す方法を教えてください。 – tpk

関連する問題