|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class CompositeDataInvocationHandler extends Object implements InvocationHandler
InvocationHandler это вперед методы метода get к a CompositeData. Если у Вас есть интерфейс, который содержит только методы метода get (такой как String getName() или boolean isActive()) тогда можно использовать этот class в соединении с Proxy class, чтобы произвести реализацию интерфейса, куда каждый метод 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 экземпляр, соответствующий методу интерфейса, вызывается на экземпляр прокси. Объявление class Method объект будет интерфейсом, в котором был объявлен метод, который может быть суперинтерфейсом интерфейса прокси, что прокси class наследовал метод через.args - массив объектов, содержащих значения параметров, которые передают в вызове метода экземпляру прокси, или null если метод интерфейса не берет параметров. Параметры типов примитивов обертываются в экземпляры соответствующей примитивной обертки class, такой как java.lang.Integer или java.lang.Boolean.null и тип возврата метода интерфейса примитивен, тогда a NullPointerException будет брошен вызовом метода на экземпляре прокси. Если значение, возвращенное этим методом, является иначе не совместимым с объявленным типом возврата метода интерфейса как описано выше, a ClassCastException будет брошен вызовом метода на экземпляре прокси.Throwable - исключение, чтобы бросить от вызова метода на экземпляре прокси. Тип исключения должен быть присваиваемым любой любому из типов исключения, объявленных в throws пункт метода интерфейса или к типам исключения непроверенным java.lang.RuntimeException или java.lang.Error. Если проверенное исключение выдается этим методом, который не присваиваем любому из типов исключения, объявленных в throws пункт метода интерфейса, затем UndeclaredThrowableException содержа исключение, которое было выдано этим методом, будет брошен вызовом метода на экземпляре прокси.UndeclaredThrowableException
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92