The reason why future methods are static and having a void return type is : … Future method by definition is static so that variables with this method is associated to the class and not the instance and you can access them without instantiating the class.