我想知道是否有办法阻止一个类使用方法,但让另一个使用方法取决于它们的扩展。我们可以说class1实现了Plugin,class2实现了Mod,是否有可能允许class2使用load()方法。但停止使用它的class1方法使用限制
Q
方法使用限制
2
A
回答
1
也许你可以将调用者的类型传递给该方法,然后使用instanceof comparison operator。例如:
public void myMethod(Object obj){
if(obj instanceof Mod){
\\ do something
} else if(obj instanceof Plugin){
\\ do not permit
}
}
-1
使用的instanceof检查实例的类型,然后给它的权限的方法。
Class1 c1 = new Class1();
Class2 c2 = new Class2();
doIt(c1);
doIt(c2);
public void doIt(Object obj){
if (obj instanceof Class2){
myRestrictedMethod();
}
}
+0
我不喜欢这样做的想法,这可能会导致安全问题 – 2012-07-11 19:05:26
+0
如果您可以指出您的安全问题 – 2012-07-11 19:06:28
+0
如果通过反射调用东西,此解决方案将不起作用。检查必须在受限制的方法中进行。 – Jochen 2012-07-11 19:13:14
相关问题
- 1. COM接口方法限制
- 2. Rest API GET方法限制
- 3. $ _POST方法请求限制
- 4. 限制类的调用方法
- 5. 如何限制调用方法
- 6. PHP限制调用公共方法
- 7. 限制方法调用另一种方法
- 8. 如何使用find方法限制相关模型的字段
- 9. 使用groovy-android-gradle-plugin超过了65536的方法限制
- 10. 限制路线允许使用的方法
- 11. 移动行到列(限制我可以使用什么方法)
- 12. 使用NHibernate轻松获取字段长度限制的方法
- 13. 使用Spring Security限制端点的身份验证方法
- 14. 方案限制
- 15. 使用requests.get方法无限滚动python
- 16. 费马分解方法的限制
- 17. 限制在J2SE内置方法
- 18. 击中65K方法DEX限制建立
- 19. 克服RichTextBox限制的一种方法?
- 20. 通过方法限制呼叫
- 21. 限制骆驼路线HTTP方法
- 22. J2ME Hessian限制的解决方法?
- 23. Ruby或Rails的方法来限制
- 24. 限制什么是传递给方法
- 25. 预防/限制方法继承
- 26. VBA:替代限制类别的方法?
- 27. 子方法的限制范围
- 28. PHP exec_shell方法返回数据限制?
- 29. OpenStack中子带宽限制方法
- 30. 最佳限制方法调用率,一个方法的频率可以调用
除了检查调用者类型之外,这很难做到。但通常情况下,这也不是必要的。如果你告诉我们上下文,也许我们可以提出更好的解决方案。 – Jochen 2012-07-11 19:14:39
您可以重载该方法并使受限制的方法版本不执行任何操作。 – Keppil 2012-07-11 19:44:53