I am looking for alternatives to initialize a bounded generic type in Java. So far I have found 3 potential alternatives:
Initially, I thought that the generics factory would be more flexible, however as I saw the built-in supplier, I believe that this would be flexible and also easier to maintain. So I created the following example based on SomeContainer:

Given that I have a CarPart class that has a subclass, and I have a car class (where T extends CarPart) that should hold a list of any type that extends the class CarPart. I am trying to see if there is an alternative to initialize any potential CarPart subclass and add to the carParts list (method addNewGenericCarPart()).
Here is the code:
public class Car<T extends CarPart> {
    private Supplier<T> carPartsSupplier;
    List<T> carParts;
    Car(Supplier<T> carPartsSupplier){
        this.carPartsSupplier=carPartsSupplier;
    }
    T createCarParts(){
        return carPartsSupplier.get();
    }
    public Car(List<T> carParts) {
        this.carParts = carParts;
    }
    void addNewGenericCarPart(){
//        TODO:Create a new generic Part Subclass
        Car<T> anythingExtendsCarParts=
                new T(T::new);//Error:Cannot resolve constructor 'T'
//        TODO:Add the new generic Part to carParts
        carParts.add(anythingExtendsCarParts);
    }
}
public class CarPart {
    String name="default";
    public CarPart() {
    }
    public CarPart(String name) {
        this.name = name;
    }
    void printCarParts(){
        System.out.println(name);
    }
}
public class CarPartSubclass extends CarPart {
    String subname;
    public CarPartSubclass() {
    }
    public CarPartSubclass(String name, String subname) {
        super(name);
        this.subname = subname;
    }
    void print(){
        System.out.println("This is a CarpartSubclass");
    }
}
public class Main {
    public static void main(String[] string) {
        List<CarPartSubclass> carPartsSubclassList=new ArrayList<>();
        carPartsSubclassList.add(new CarPartSubclass());
        Car<CarPartSubclass> car=new Car<CarPartSubclass>(carPartsSubclassList);
        car.addNewGenericCarPart();
    }
}
The above code results in the error
Cannot resolve constructor 'T' in the method addNewGenericCarPart() in the class Car.
- Does anyone know if it is possible to create a workaround?
- Or is there any alternative to be able to initialize a generic bounded class?
 
    