import java.lang.reflect.Field;

public class Test02
{
	public static boolean test(double posX, double posY, double radio, double altura) throws Throwable
	{
		final Class<?> figuraClass = Figura.class;
		final Class<?> circuloClass = Circulo.class;
		final Class<?> cilindroClass = Cilindro.class;

        // Si supieramos el nombre del atributo sería así:
        // final Field yField = figuraClass.getDeclaredField("x");
		final Field xField = figuraClass.getDeclaredFields()[0];//No sabemos el nombre del atributo
		final Field yField = figuraClass.getDeclaredFields()[1];//No sabemos el nombre del atributo
		final Field radioField = circuloClass.getDeclaredFields()[0];//No sabemos el nombre del atributo
		final Field alturaField = cilindroClass.getDeclaredFields()[0]; //No sabemos el nombre del atributo

		xField.setAccessible(true);
		yField.setAccessible(true);
		radioField.setAccessible(true);
		alturaField.setAccessible(true);

		final Cilindro cilindro = new Cilindro(posX, posY, radio, altura);
		final double xValue = (Double) xField.get(cilindro);
		final double yValue = (Double) yField.get(cilindro);
		final double radioValue = (Double) radioField.get(cilindro);
		final double alturaValue = (Double) alturaField.get(cilindro);

		return xValue == posX && yValue == posY && radioValue == radio && alturaValue == altura;
	}
}