package astfactory; //import javafx.collections.ObservableList; import de.dhbwstuttgart.syntaxtree.ClassOrInterface; import de.dhbwstuttgart.syntaxtree.factory.ASTFactory; import de.dhbwstuttgart.syntaxtree.type.GenericRefType; import org.junit.Test; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import java.util.Arrays; import java.util.HashMap; import static org.junit.Assert.*; public class ASTFactoryTest<A> extends HashMap<String, A>{ @Test public void test(){ System.out.println((this.getClass().getGenericSuperclass())); Type[] arguments = ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments(); System.out.println(Arrays.toString(arguments)); System.out.println(((TypeVariable)arguments[1]).getGenericDeclaration()); } public static class GenericFieldTest<G>{ public G testField; } @Test public void genericFieldTest(){ ClassOrInterface test = ASTFactory.createClass(GenericFieldTest.class); assertTrue(test.getFieldDecl().get(0).getType() instanceof GenericRefType); } }