我想知道是否有辦法阻止一個類使用方法,但讓另一個使用方法取決於它們的擴展。我們可以說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