Given the code fragment:



String str = "Java is a programming language";
ToIntFunction<String> indexVal = str::indexOf; //line n1
int x = indexVal.applyAsInt("Java"); //line n2
System.out.println(x);

What is the result?

A.

0

B.

1

C. A compilation error occurs at line n1.
D. A compilation error occurs at line n2.

題解

ToIntFunction的JDK原始碼如下:

@FunctionalInterface
public interface ToIntFunction<T> {

    int applyAsInt(T value);
}

所以line n2,其實會等於:

int x = str.indexOf("Java");

會在str所參考到的字串中,索引0的位置找到「Java」子字串。