Это просто получение системного свойства. Для извлечения системных свойств требуются разрешения, которых у вызывающего кода может не быть. doPrivileged
утверждает привилегии вызывающего класса независимо от того, как он был вызван. Ясно, что doPrivileged
- это то, с чем вам нужно быть осторожным.
Указанный код является эквивалентом:
String lineSeparator = java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction<String>() {
public String run() {
return System.getProperty("line.separator");
}
}
);
(Разве вы не любите лаконичность синтаксиса Java?)
Без предоставления привилегий, это можно переписать как:
String lineSeparator = System.getProperty("line.separator");