Detecting type of object used in Java Lambda expression

Viewed 20

I came across a code similar to below. There is no local variable or instance variable defined as order in the class or its super class. How does Java identify variable order used below is type of Class Order and lets the developer use the methods from Order class? Howe is it also able to get an object instance with values populated?

  public Data getData(
    Resource resource,
    Optional<Integer> myData
  ) {
    Metadata metadata = getMetadata(
      resource,
      myData
    );
    return order ->
      MyUtils
        .extractJson(DataMap.class, metadata, order.getMetadata());
  }

Data Interface

  interface Data {
    MetadataMap fetchMetadata(Order order);
  }
0 Answers
Related