Articles of reflection de

¿Cómo obtener el número de línea de un método?

¿Es posible obtener el número de línea de un método usando reflexión u otra magia? Es posible si el método está dentro de Stacktrace actual. Usando Thread.currentThread().getStackTrace() , uno puede obtener el número de línea de un StackTraceElement . Pero, ¿qué puedo hacer si solo tengo el objeto java.lang.reflect.Method ? Encontré esto, para las clases-> […]

Accediendo a variables privadas en Java a través de la reflexión

Intento escribir un método que obtenga un campo privado en una clase utilizando la reflexión. Aquí está mi clase (simplificada para este ejemplo): public class SomeClass { private int myField; public SomeClass() { myField = 42; } public static Object getInstanceField(Object instance, String fieldName) throws Throwable { Field field = instance.getClass().getDeclaredField(fieldName); return field.get(instance); } } […]

Llamada de función dinámica de Java

Tengo una matriz de cadenas que contiene nombres de métodos en la clase yyyyyy En la clase xxxxxx estoy haciendo una instancia de yyyyyy (digamos obj ). Ahora puedo llamar a obj.function_name() , excepto que quiero leer function_name de String Array en un bucle. es posible?

Reflejo de Java: impacto de setAccessible (verdadero)

Estoy usando algunas anotaciones para establecer dinámicamente valores de campos en clases. Como quiero hacer esto independientemente de si es público, protegido o privado, estoy llamando a setAccessible(true) en el objeto Field cada vez antes de llamar al método set() . Mi pregunta es ¿qué tipo de impacto tiene la llamada setAccessible() en el campo […]

Constructor de llamadas de Java Reflection con tipos primitivos

Tengo un método en mi marco de prueba que crea una instancia de una clase, dependiendo de los parámetros pasados: public void test(Object… constructorArgs) throws Exception { Constructor con; if (constructorArgs.length > 0) { Class[] parameterTypes = new Class[constructorArgs.length]; for (int i = 0; i < constructorArgs.length; i++) { parameterTypes[i] = constructorArgs[i].getClass(); } con = […]

Crear clases dinámicamente con Java

Intenté encontrar información sobre esto, pero he salido con las manos vacías: Supongo que es posible crear una clase de forma dinámica en Java utilizando reflexión o proxies, pero no puedo averiguar cómo. Estoy implementando un marco de base de datos simple donde creo las consultas SQL usando reflexión. El método obtiene el objeto con […]

Instanciando objeto de tipo parámetro

Tengo una clase de plantilla de la siguiente manera: class MyClass { T field; public void myMethod() { field = new T(); // gives compiler error } } ¿Cómo creo una nueva instancia de T en mi clase?

¿Por qué no hay un operador `fieldof` o` methodof` en C #?

Se podrían usar de la siguiente manera: FieldInfo field = fieldof(string.Empty); MethodInfo method1 = methodof(int.ToString); MethodInfo method2 = methodof(int.ToString(IFormatProvider)); fieldof podría comstackrse a IL como: ldtoken call FieldInfo.GetFieldFromHandle methodof podría comstackrse a IL como: ldtoken call MethodBase.GetMethodFromHandle Cada vez que se utiliza el operador typeof , obtiene resultados perfectos Buscar todas las referencias. Desafortunadamente, tan […]

¿Cómo usar URLClassLoader para cargar un archivo * .class?

Estoy jugando con Reflection y pensé en hacer algo que cargue una clase e imprima los nombres de todos los campos de la clase. He hecho un pequeño tipo de clase de mundo de hola para tener algo que inspeccionar: kent@rat:~/eclipsews/SmallExample/bin$ ls IndependentClass.class kent@rat:~/eclipsews/SmallExample/bin$ java IndependentClass Hello! Goodbye! kent@rat:~/eclipsews/SmallExample/bin$ pwd /home/kent/eclipsews/SmallExample/bin kent@rat:~/eclipsews/SmallExample/bin$ En base a […]

Acceder al valor de la variable final estática de Java a través de la reflexión

¿Se puede recuperar el valor de una variable de clase final estática de Java a través de la reflexión?