Ideally, no! You’d write a subclass specific to the type you want to handle, while keeping all the generic stuff (pun intended!) in the superclass eg.
class PVectorQuadTree extends QuadTree<PVector> {
// methods using T as PVector here
// eg. anything returning T in superclass will give you a PVector
// anything accepting a T can be overridden to accept PVector
}
There are other ways, eg. by accepting a Consumer<T> in a method you will then be able to pass in a Consumer<PVector> to a QuadTree<PVector> This is how the forEach methods on Java 8 collections work, but it’s more awkward to use without lambdas - see https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html#forEach-java.util.function.Consumer-