La reflexión de Java, la creación de objeto de la clase privada de paquete diferente

Resumen :

Tengo una clase privada (deque) que necesito para crear un objeto de, fuera de otra clase del paquete (paquete de com.example)

package com.example;

final class Deque {

    public Deque() {}

}

El uso de la reflexión, ¿cómo iba a ir sobre la creación de un objeto de tipo com.example.Deque, de una clase que no está dentro del paquete de com.example?

Stephan Hogenboom:

Es complicado y por lo general no se recomienda para hacerlo, pero se pueden crear y objeto de Dequefuera del paquete. No estoy al tanto si se puede tener una referencia adecuada del tipo deque a él sin embargo.

package com.demo;

final class NotADeque {

    public NotADeque() {}

    public static void main(String[] args) throws ClassNotFoundException, 
        NoSuchMethodException, IllegalAccessException, InvocationTargetException, 
        InstantiationException {
      Class<?> c = Class.forName("com.example.Deque");
      Constructor<?> constructor = c.getDeclaredConstructor();
      constructor.setAccessible(true);//Make the constructor accessible.

      Object o = constructor.newInstance();
      System.out.println(o);
    }
}

Esto creará una instancia de Deque, pero con una Objectreferencia a él. También se fijan en la cantidad de excepciones comprobadas que podrían ser arrojado al hacer esto, este es un enfoque muy endeble. Para más detalles visite esta pregunta

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=236098&siteId=1
Recomendado
Clasificación