Ajax, CSRF и DELETE

Это конкретное предложение книги кажется неправильным.

Когда задействованы интерфейсы, более чем одно объявление метода может быть переопределено. с помощью одной переопределяющей декларации. В этом случае объявление переопределения должно иметь предложение throws, которое совместимо со всеми переопределенными объявлениями (§9.4.1) .

blockquote>

Таким образом, в этом случае, совместимым с обеими декларациями, было бы

@Override
public void x() {
}

. В обеих декларациях были общие исключения, которые они могли включить в декларацию.

interface I1 {
    public void x() throws I1Exception, I2Exception;
}

interface I2 {
    public void x() throws I2Exception;
}

then

@Override
public void x() throws I2Exception {
}

Или, альтернативно, в вашем примере, если у вас есть что-то вроде

class I1Exception extends I2Exception {
}

class I2Exception extends Exception {
}

Тогда можно было бы написать декларацию совместимого метода как

@Override
public void x() throws I1Exception {

}

13
задан Pablo 27 October 2012 в 02:13
поделиться