我必须在我的方法final上声明一个参数才能通过 Runnable 访问它,但是我仍然可以访问这些方法吗?我需要稍微编辑一下这个对象。我似乎无法找到任何可以帮助我解决这个问题的东西,所以希望这不是一个愚蠢的问题。先谢谢!
答案 0 :(得分:3)
对象不是final
,但它的引用是。因此,您可以轻松访问其方法(如果有)以修改对象。
答案 1 :(得分:0)
您可以更改对象的状态,即使它已标记为final
。当您标记引用变量final
时,您无法将其重新分配给另一个对象,但您可以通过调用其方法来更改它已引用的对象的状态。
答案 2 :(得分:0)
是的,你可以。检查此示例
public class SampleA
{
private static final SampleB sampleB = new SampleB();
public static void main(String[] args)
{
System.out.println( sampleB.toString() );
sampleB.setM1( "1" );
System.out.println( sampleB.toString() );
}
}
public class SampleB
{
private String m1;
private String m2;
public String getM1()
{
return m1;
}
public void setM1(String m1)
{
this.m1 = m1;
}
public String getM2()
{
return m2;
}
public void setM2(String m2)
{
this.m2 = m2;
}
public String toString()
{
final String TAB = " ";
String retValue = "SampleB ( "
+ "m1 = " + this.m1 + TAB
+ "m2 = " + this.m2 + TAB
+ " )";
return retValue;
}
}