Accessing functions from Java Generics

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-