fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class GenericClass<T> {
  9. }
  10.  
  11. abstract class AbstractClass<T, G extends GenericClass<T>> {
  12. public AbstractClass(Class<G> generic, T something) { }
  13. }
  14.  
  15. class GeneralClass<T> extends AbstractClass<T, GenericClass<T>> {
  16. public GeneralClass(Class<GenericClass<T>> generic, T something) {
  17. super(generic, something); // !error, asking for Class<GenericClass<T>>
  18. }
  19. }
  20.  
  21. public class Main {
  22. public static void main(String[] args){
  23. GenericClass<String> generic = new GenericClass<String>();
  24. Class genericClass = generic.getClass();
  25. GeneralClass<String> foo = new GeneralClass<String>(genericClass, "foo");
  26. }
  27. }
Success #stdin #stdout 0.07s 380224KB
stdin
Standard input is empty
stdout
Standard output is empty