Как искать потенциально применимые методы для ссылки на метод в Java? [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как искать потенциально применимые методы для ссылки на метод в Java? [дубликат]

Сообщение Anonymous »

Вопросы, которые я задавал несколько дней назад, были слишком хаотичными, поэтому я хочу здесь более четко выразить свою мысль.
Во-первых, давайте рассмотрим пример:Я попытался проанализировать этот код, чтобы увидеть, каким должен быть вызов метода, на который ссылается ссылка на метод.
Согласно JLS 15.13.1:Очевидно, тип, который нужно искать, — это тип класса C.
И затем:

• Во-вторых, для заданного типа целевой функции с n параметрами определяется набор
потенциально применимых методов: – Если ссылочное выражение метода
имеет форму ReferenceType :: [TypeArguments]Идентификатор, то потенциально применимыми методами являются: › методы-члены
типа для поиска, которые могут быть потенциально применимы
(§15.12.2.1) для вызова метода, который называет Идентификатор, имеет арность
n, имеет аргументы типа TypeArguments и находится в том же классе, что и
выражение ссылки на метод; плюс › методы-члены типа
для поиска, которые потенциально могут быть применимы для вызова метода
, который называет Identifier, имеет разрядность n-1, имеет аргументы типа
TypeArguments и появляется в тот же класс, что и выражение ссылки на метод.

В соответствии с JLS, теперь предположим, что существует вызов метода: "идентификатор имен имеет арность n, имеет аргументы типа TypeArguments и находится в том же классе, что и выражение ссылки на метод", а затем определяет, является ли этот предполагаемый вызов метода потенциально применимым с двумя методами-членами, появляющимися в классе C.
Они имеют одинаковое имя и одинаковую арность.
И из-за предложения «и появляется в том же классе, что и выражение ссылки на метод», класс, в котором происходит вызов метода, определяется таким образом, чтобы вынести суждение о предложении «Член доступен (§6.6) для класса или интерфейса, в котором появляется вызов метода». (15.12.2.1)
А как насчет совместимости? Он не предоставляет типы аргументов предполагаемого вызова метода.
Как вынести суждение

" Если элемент является методом фиксированной арности с арностью n, арность
вызова метода равна =n, и для всех i (1 ≤ i ≤ n) i-й
аргумент вызов метода потенциально совместим, как
определено ниже, с типом i-го параметра метода."

?(15.12.2.1)
Другими словами, это не просто статический размер int(Object arg). Если у меня тоже есть

Код: Выделить всё

static int size(String arg)
и т. д. с параметрами любого типа, являются ли они также обязательно потенциально применимыми методами-членами (поскольку это не имеет никакого отношения к типам параметров и аргументов.)?
Спасибо, что прочитали и ответили.
Я не думаю, что мой вопрос похож на этот. Если только оценивать потенциальную применимость методов-членов и вызовов методов. , спецификации четко написаны. Здесь используются ссылки на методы. Насколько я понимаю, согласно спецификации, метод-член будет сравниваться с предполагаемым вызовом. Однако для этого предполагаемого вызова информации, предоставленной спецификацией, кажется недостаточно.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ce-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»