Если выражение ссылки на метод имеет вид ReferenceType :: [TypeArguments] Идентификатор , то выполняется два поиска наиболее конкретного применимого метода. Каждый поиск такой, как указано в §15.12.2.2–15.12.2.5, с пояснениями ниже. Каждый поиск производит набор применимых методов и, возможно, обозначает наиболее конкретный метод из набора. В случае ошибки, указанной в §15.12.2.4, набор применимых методов пуст. В случае ошибки, указанной в §15.12.2.5, не существует наиболее конкретного метода.
В первом поиске ссылка на метод обрабатывается так, как если бы это был вызов с выражениями аргументов типов P 1 , ..., P n . Аргументы типа, если они есть, задаются ссылочным выражением метода.
Во втором поиске, если P 1 , ..., P n не пусто и P 1 является подтипом ReferenceType , то выражение ссылки на метод обрабатывается так, как если бы оно было выражением вызова метода с выражениями аргументов типов P 2 , ..., P n .
Если при первом поиске создается наиболее конкретный метод, равный static
, и набор применимых методов, созданных при втором поиске, не содержит не static
методов, то объявление времени компиляции является наиболее заданным методом первый поиск.
В противном случае, если набор применимых методов, полученных в результате первого поиска, не содержит методов static
, а второй поиск создает наиболее специфический метод, отличный от static
, тогда объявление времени компиляции является наиболее конкретным метод второго поиска.