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」子字串。