As for the () -> m_joystick.getX()
and DoubleSupplier syntax, what is happening is that you are wrapping your joystick method inside a second ‘anonymous’ function (often called lambda functions in CS), which you can then pass a reference to into your Command object. This allows you to call that joystick method later inside the Command without having to pass the whole Joystick Object, or going outside the Command class (to the RobotContainer) to grab it.
One of my students called it “smuggling methods” between objects, and I kinda liked that comparison as well.