Java_классы могут определять несколько методов с одинаковыми именами. Ес_ ли попытаться перечислить свойства объекта JavaObject, который имеет перегру_ женный метод экземпляра, удастся увидеть лишь одно свойство с именем пере_ груженного метода. Обычно реализация LiveConnect будет пытаться вызвать корректный метод, основываясь на типах передаваемых аргументов.
Однако иногда может потребоваться явно указать, какой из перегруженных ме_ тодов должен быть вызван. Доступ к перегруженным методам в объектах JavaOb_ ject и JavaClass выполняется через специальные свойства, которые включают в себя как имя перегруженного метода, так и типы его аргументов. Предполо_ жим, что имеется объект о класса JavaObject, в котором есть два метода с именем f, один из которых принимает аргумент типа int, а другой – типа boolean. Тогда свойство o.f будет представлять функцию, вызывающую наиболее подходящий Java_метод, основываясь на типе входного аргумента. В то же время есть воз_ можность явно указать, какой из двух Java_методов следует вызвать:
var f = o['f'];
| // Вызов наиболее подходящего метода
|
var
| boolfunc = o['f(boolean)'];
| //
| Метод
| с
| аргументом
| типа
| boolean
|
var
| intfunc = o['f(int)'];
| //
| Метод
| с
| аргументом
| типа
| int
|
Когда круглые скобки используются как часть имени свойства, обычная точеч_ ная нотация для обращения к нему не подходит – это должно быть строковое вы_ ражение в квадратных скобках.
Примечательно, что тип JavaClass может также различать перегруженные стати_ ческие методы.