2

あるクラスがメソッドを使用するのを止めて、拡張内容に応じて別のクラスにメソッドを使用させる方法があるかどうか疑問に思いました。

class1がプラグインを実装し、class2がModを実装するとします。class2がメソッドload()を使用できるようにすることは可能ですか。しかし、class1がそれを使用するのを止めてください

4

2 に答える 2

1

たぶん、呼び出し元のタイプをメソッドに渡してから、instanceof比較演算子を使用できます。例えば:

public void myMethod(Object obj){
    if(obj instanceof Mod){
        \\ do something
    } else if(obj instanceof Plugin){
        \\ do not permit
    }
}
于 2012-07-11T19:03:44.353 に答える
-1

instanceofを使用してインスタンスのタイプを確認してから、メソッドへのアクセス許可を付与します。

Class1 c1 = new Class1();
Class2 c2 = new Class2();

doIt(c1);
doIt(c2);

public void doIt(Object obj){

    if (obj instanceof Class2){

         myRestrictedMethod();

    }


}
于 2012-07-11T19:04:01.187 に答える