我必须在我的方法 final 上声明一个参数才能通过Runnable访问它,但我仍然可以访问这些方法吗?我需要稍微编辑一下对象。我似乎找不到任何可以帮助我解决这个问题的东西,所以希望这不是一个愚蠢的问题。先谢谢了!
问问题
49 次
3 回答
3
对象不是final
,但它的引用是。所以你可以很容易地访问它的方法(如果有的话)来修改对象。
于 2013-04-27T08:04:48.360 回答
0
您可以更改对象的状态,即使它被标记为final
。当你标记一个引用变量final
时,你不能将它重新分配给另一个对象,但你绝对可以通过调用它的方法来改变它已经引用的对象的状态。
于 2013-04-27T08:07:31.827 回答
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;
}
}
于 2013-04-27T08:13:04.410 回答