Os métodos privados são realmente seguros?

Em Java, oprivate modificador de acesso considerado seguro, pois não é visível fora da classe. Então o mundo exterior também não conhece esse método.

Mas eu pensei que a reflexão Java pode usar para quebrar essa regra. Considere o seguinte caso:

public class ProtectedPrivacy{

  private String getInfo(){
     return "confidential"; 
  }

}  

Agora de outra classe eu vou pegar Info:

public class BreakPrivacy{

   public static void main(String[] args) throws Exception {
       ProtectedPrivacy protectedPrivacy = new ProtectedPrivacy();
       Method method = protectedPrivacy.getClass().getDeclaredMethod("getInfo", null);
       method.setAccessible(true);
       Object result = method.invoke(protectedPrivacy);
       System.out.println(result.toString());
   }
} 

Neste momento eu apenas pensei que ainda método seguro privado, uma vez que para fazer alguma coisa como acima, devemos saber o nome do método. Mas se classe que contém método privado escrito por alguém mais, não temos visibilidade deles.

Mas meu ponto se torna inválido desde abaixo da linha de código.

Method method[] = new ProtectedPrivacy().getClass().getDeclaredMethods();

Agora issomethod[] contém todas as coisas que precisam fazer acima da coisa. Minha pergunta é, existe uma maneira de evitar esse tipo de coisa usando o Java?

Eu estou citando algum ponto deDocumentação Java para esclarecer minha pergunta.

Dicas sobre como escolher um nível de acesso:

Se outros programadores usarem sua classe, você deve garantir que os erros de uso indevido não aconteçam. Os níveis de acesso podem ajudá-lo a fazer isso. Use o nível de acesso mais restritivo que faça sentido para um membro específico. Use privado, a menos que você tenha uma boa razão para não.

questionAnswers(7)

yourAnswerToTheQuestion