2017-04-18 39 views
2

Class.java Java如何限制反射訪問字段private final ClassLoader classLoader in Class.java? (如屏幕截圖中的文檔所示)如何從反射訪問過濾特定字段?

我找到了一個link,它描述了SecurityManager可以用來限制反射訪問,但是我怎樣才能使用它。請詳細解釋。

之後,我想限制只訪問特定字段。

發現similar question 但想知道我該如何在我的課堂上實現這一點,並且已經在問題中問過爲什麼這是在jdk中實現的?我是否也可以使用反射來打破這條鏈?

+0

[Here](http://stackoverflow.com/questions/14903318/hiding-my-security-key-from-java-reflection?answertab=votes#tab-top)是你的問題的答案。 –

+0

你爲什麼想要使用這個私人領域?我確信你的問題可以解決,但不能通過訪問受JVM保護的字段。 @Pavlo:看起來有些字段無法訪問,因爲它們甚至找不到。 – CoronA

回答

1

它受JVM通過特殊機制的保護,不可用於您。即使你擁有所有的權限,你也無法通過反射來訪問它,儘管通常私有字段可以被訪問。

對於我們凡人來說,我們所能做的最好的方法就是使用SecurityManager,它可以防止反射訪問,更重要的是設計我們的軟件,因此它不依賴於Java來保密。

爲了回答您的編輯,因爲我顯然不清楚(?)

「我怎麼能在我的類中實現這一點?」 你不能。

「爲什麼這是在jdk中實現的?」 所以你不能用反射來繞過它。

「我還可以用反射打破這條鏈嗎?」不,這就是整個觀點。