I have a code piece like this:

```
String[] yetToSortedArray = {"Abc","hello world","nihao?","chilemaNin"};
Arrays.parallelSort(yetToSortedArray, Comparator.comparing(String::length));
for(String str : yetToSortedArray){
    System.out.println(str + ", ");
}

```

My question is here: "String::length" 
What am I really passing in to Comparator.comparing()? 
Why there is no parenthesis for String::length()?

I think I am using this : <https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#comparing-java.util.function.Function-java.util.Comparator->

And it says "Accepts a function that extracts a Comparable sort key from a type T, and returns a Comparator that compares by that sort key."

How dos String::length match this type?

Thanks.