method(String str)和方法(Final String str)之间有什么区别

时间:2014-12-17 13:17:17

标签: java methods arguments keyword

在方法参数中使用Final关键字让我感到困惑

public void helloWorld(String str)
{

}


public void helloWorld(Final String str)
{

}

What is the differences between them?

1 个答案:

答案 0 :(得分:4)

public void helloWorld(final String str)不允许您在方法内部更改str的值,而没有最终关键字,您可以在本地更改它。

public void helloWorld(String str)
{
     str = "something"; // OK
}


public void helloWorld(final String str)
{
    str = "something"; // ERROR
}

当然,即使helloWorld(String str)也无法更改传递给方法的String的值,因为Java是一种按值传递的语言。