в java multi-catch каждый символ multi-catch является окончательным, но я не могу его получить - PullRequest
1 голос
/ 18 января 2020
class Main
{
    public static void main(String args[]) 
    {
        try{
            throw new ArrayIndexOutOfBoundsException("yyyoyo");
        }
        catch(ArrayIndexOutOfBoundsException |ArithmeticException e)
        {
            e.initCause(new Exception());
        }
    }
}

Поскольку мы знаем, что параметр multi-catch неявно является окончательным, то, как я могу связать исключение в блоке catch.

1 Ответ

4 голосов
/ 18 января 2020

A final ссылка означает, что вы не можете присвоить ему новое значение. Он не останавливает обновление объекта.

Например:

class MyClass {
    String string;

    public MyClass(String string) {
        super();
        this.string = string;
    }

    public String getString() {
        return string;
    }

    public void setString(String string) {
        this.string = string;
    }

    @Override
    public String toString() {
        return "MyClass [string=" + string + "]";
    }

}

public class Main {
    public static void main(String[] args) {
        final MyClass obj = new MyClass("Test");
        System.out.println(obj);
        obj.setString("Testing");
        System.out.println(obj);

        // obj= new MyClass("Testing"); // Trying to assign a new value to obj will result in a compilation error
    }
}

Вывод:

MyClass [string=Test]
MyClass [string=Testing]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...