方法使用限制

时间:2012-07-11 18:58:11

标签: java code-access-security

我想知道是否有办法阻止一个类使用方法,但让另一个使用该方法取决于它们扩展的内容。

让我们说class1实现了Plugin而class2实现了Mod,是否可以允许class2使用方法load();但是停止使用class1

2 个答案:

答案 0 :(得分:1)

也许您可以将调用者的类型传递给方法,然后使用instanceof comparison operator。例如:

public void myMethod(Object obj){
    if(obj instanceof Mod){
        \\ do something
    } else if(obj instanceof Plugin){
        \\ do not permit
    }
}

答案 1 :(得分:-1)

使用 instanceof 检查实例类型,然后授予方法权限。

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

doIt(c1);
doIt(c2);

public void doIt(Object obj){

    if (obj instanceof Class2){

         myRestrictedMethod();

    }


}