Java getInstance() with a Generic class using Singleton pattern : I'm new to Generics and the Singleton pattern in Java. I have the following questions:

-Is a Generic class compatible with the Singleton Pattern, namely having a static instance? 

-If so, I have the following Generic class that I want to convert to a Singleton. What is the best practice?

-(Noob question) Is there a good way to de-generify an instance of the class in runtime? passing the class as parameter in getInstance()?

    class GenFooSingleton <T>
    {
        private T t;
    
        // Prevent direct instantiation
        private GenFooSingleton(T o){
            this.t = o;
        }
    
        private static GenFooSingleton INSTANCE = null;
    
        // Returns the single instance of this class, creating it if necessary
        static synchronized <T> GenFooSingleton<T> getInstance(T tClass)
        {
            if (INSTANCE == null)
            {
                INSTANCE = new GenFooSingleton<>(tClass);
            }
            return INSTANCE;
        }
    
    }

Thank you so much for your time.