|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class CompositeDataInvocationHandler extends Object implements InvocationHandler
InvocationHandler это вперед методы метода get к a CompositeData. Если у Вас есть интерфейс, который содержит только методы метода get (такой как String getName() или boolean isActive()) тогда можно использовать этот класс в соединении с Proxy класс, чтобы произвести реализацию интерфейса, куда каждый метод get возвращает значение соответствующего элемента в a CompositeData.
Например, предположите, что у Вас есть интерфейс как это:
public interface NamedNumber {
public int getNumber();
public String getName();
}
и a CompositeData созданный как это:
CompositeData cd =
new CompositeDataSupport(
someCompositeType,
new String[] {"number", "name"},
new Object[] {5, "five"}
);
тогда можно создать объектную реализацию NamedNumber и поддержанный объектом cd как это:
InvocationHandler handler =
new CompositeDataInvocationHandler(cd);
NamedNumber nn = (NamedNumber)
Proxy.newProxyInstance(NamedNumber.class.getClassLoader(),
new Class[] {NamedNumber.class},
handler);
Звонок nn.getNumber() тогда возвратится 5.
Если первая буква свойства, определенного методом get, будет капиталом, то этот обработчик будет сначала искать элемент в CompositeData начинание с капитала, тогда, если это не находится для элемента, начинающегося с соответствующей строчной буквы или кодовой точки. Для вызванного метода get getNumber(), обработчик будет сначала искать вызванный элемент Number, тогда для number. Если метода get вызывают getnumber(), тогда элемент нужно вызвать number.
Если метод, данный invoke метод boolean equals(Object) наследованный от Object, тогда это возвратит true, если и только если параметром является a Proxy чей InvocationHandler также a CompositeDataInvocationHandler и чья поддержка CompositeData равно (не обязательно идентичный) к этому объекту. Если метод, данный invoke метод int hashCode() наследованный от Object, тогда это возвратит значение, которое является непротиворечивым с этим определением equals: если два объекта равны согласно equals, тогда у них будет то же самое hashCode.
| Конструктор и Описание |
|---|
CompositeDataInvocationHandler(CompositeData compositeData)
Создайте обработчик, поддержанный данным
CompositeData. |
| Модификатор и Тип | Метод и Описание |
|---|---|
CompositeData |
getCompositeData()
Возвратитесь
CompositeData это было предоставлено конструктору. |
Объект |
invoke(Object proxy, Method method, Object[] args)
Обрабатывает вызов метода на экземпляре прокси и возвращает результат.
|
public CompositeDataInvocationHandler(CompositeData compositeData)
Создайте обработчик, поддержанный данным CompositeData.
compositeData - CompositeData это предоставит информацию методам get.IllegalArgumentException - если compositeData нуль.public CompositeData getCompositeData()
CompositeData это было предоставлено конструктору.CompositeData то, что этот обработчик поддерживается. Это никогда не нуль.public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
InvocationHandlerinvoke в интерфейсе InvocationHandlerproxy - экземпляр прокси, на который был вызван методmethod - Method экземпляр, соответствующий интерфейсному методу, вызывается на экземпляр прокси. Класс объявления Method объект будет интерфейсом, в котором был объявлен метод, который может быть суперинтерфейсом интерфейса прокси, что прокси-класс наследовал метод через.args - массив объектов, содержащих значения параметров, которые передают в вызове метода экземпляру прокси, или null если интерфейсный метод не берет параметров. Параметры типов примитивов обертываются в экземпляры соответствующего примитивного класса обертки, такой как java.lang.Integer или java.lang.Boolean.null и тип возврата интерфейсного метода примитивен, тогда a NullPointerException будет брошен вызовом метода на экземпляре прокси. Если значение, возвращенное этим методом, является иначе не совместимым с объявленным типом возврата интерфейсного метода как описано выше, a ClassCastException будет брошен вызовом метода на экземпляре прокси.Throwable - исключение, чтобы бросить от вызова метода на экземпляре прокси. Тип исключения должен быть присваиваемым любой любому из типов исключения, объявленных в throws пункт интерфейсного метода или к типам исключения непроверенным java.lang.RuntimeException или java.lang.Error. Если проверенное исключение выдается этим методом, который не присваиваем любому из типов исключения, объявленных в throws пункт интерфейсного метода, затем UndeclaredThrowableException содержа исключение, которое было выдано этим методом, будет брошен вызовом метода на экземпляре прокси.UndeclaredThrowableException
Для дальнейшей ссылки API и документации разработчика, см. . Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.