回答
由於調試器是用ABAP編寫的,調試器可以顯示私有成員的內容,所以前者是可能的(如果不是很容易 - 你必須做一些非常危險的低級別的東西, )。對於調用私人方法,我不確定,但我懷疑這是可能的。
但是,調試器運行在不同的進程中,並且需要調試授權。我認爲這種做法不是OP要求的。實際上,對於任何可以在虛擬機中運行的系統,您都可以從外部反省內部。這將永遠打破所有封裝障礙。 – 2013-02-25 13:35:03
調試器不在外面。 JVM調試器可能是,ABAP調試器不是。它只能訪問一些充當「環回」的內核函數。 – vwegert 2013-02-25 17:44:32
其實有兩個調試器。 「老」在內,「新」在外。 – 2013-02-26 06:16:51
ABAP是一種解釋型語言。所以解釋者隨時都知道任何事情。即使使用反射(RTTI/RTTC)和/或動態呼叫,您也無法訪問私人成員超出範圍。
但是,如果你已經申報了朋友,那麼朋友當然可以訪問私人成員。
- 1. 違反封裝?
- 2. JSTL違反封裝
- 3. ReferenceError回調沒有違反
- 4. 在線反射器沒有安裝
- 5. 模板模式違反封裝?
- 6. 訪問者模式和違反封裝
- 7. 如何違反封裝屬性?
- 8. 函數參數是否違反封裝?
- 9. 這兩個類是否違反封裝?
- 10. 反射是否違反LSP?
- 11. MVC4沒有反射
- 12. 線在IE(Flexbox的)沒有違反
- 13. 有沒有可能用反射做到這一點?
- 14. 沒有UIImageView的UIImage反射
- 15. 反射破壞封裝原理嗎?
- 16. 使用Javascript - 反射封裝構件
- 17. 在沒有反射的java中xpath
- 18. 解決方案沒有違反
- 19. 是否有可能在Java中動態設置對象屬性(沒有反射)?
- 20. GetComponent有反射
- 21. 裝載機違反約束在JBoss中
- 22. MissingMethodException當沒有反射中使用
- 23. 反射:LibraryMirror中沒有函數
- 24. Groovy反射與封閉
- 25. abap獲取所有類的屬性(反射?)
- 26. 有沒有一種方法可以在JavaScript中進行反射,但會消失反射的底部?
- 27. 如果沒有遞歸射線追蹤,反射和折射是不可能的?
- 28. 是否有可能直接在XAML中使用反射
- 29. javascript - jshint可能嚴格違反錯誤
- 30. 可能的神級違反PMD 5.4.2
你開始問更多的「危險」的問題... :-) – vwegert 2013-02-23 21:30:17
他們幾乎會從OOP的教會開除我:P但是srsly,我需要找到一個討厭的錯誤,並看看問題出在哪裏,如果我只能在調試器中修改一些私有成員變量的內容,那麼我會做很多工作,而不是實現10個接口。如果您對調試有其他看法,請分享。 – 2013-02-26 05:54:18
如果您具有適當的權限(對象S_DEVELOP活動02),則可以在調試模式下更改變量 – CaptainProton 2013-03-09 20:50:47