I haven't worked out a way of instantiating it directly (without cheating and omitting the generics). I'd be interested to see a solution to that. But I can create a non-generic subclass that can then be instantiated:
If you don't give the generic type, then anywhere the compiler needs to know the type (like in that constructor) it uses the "erasure" of that type. Which, if the type has an upper bound, is that upper bound. So in this case, because it's E extends Hose, will be Hose.