Java:类型转换问题

Java:类型转换问题,java,casting,Java,Casting,有没有办法在一行中实现这一点: TextView tv = (TextView) findViewById(R.id.lbSightName); tv.setText("Some Text"); 我想取消中间电视的声明,如下所示: (TextView) findViewById(R.id.lbSightName).setText("Some Text"); ((TextView) findViewById(R.id.lbSightName)).setText("Some Te

有没有办法在一行中实现这一点:

    TextView tv = (TextView) findViewById(R.id.lbSightName);
    tv.setText("Some Text");
我想取消中间电视的声明,如下所示:

(TextView) findViewById(R.id.lbSightName).setText("Some Text");
((TextView) findViewById(R.id.lbSightName)).setText("Some Text");

不可能?

再加上一组括号,应该可以:

((TextView)findViewById(R.id.lbSightName)).setText("Some Text");
只需添加大括号。

当然


你可以,但这不是最佳实践

((TextView) findViewById(R.id.lbSightName)).setText("Some Text");
TextView.class.cast(findViewById(R.id.lbSightName).setText("Some Text");
((TextView)findViewById(R.id.lbSightName)).setText(“一些东西”)


再添加一组括号就可以了

谢谢,为什么不是最佳实践?@Hein-您应该更喜欢多态性/访问者模式,而不是instanceof/casting,以便在Java中进行调度。@Hein-有关详细信息,请参阅我在wiki()和GoF()上的答案
((TextView) findViewById(R.id.lbSightName)).setText("Some Text");
((TextView) findViewById(R.id.lbSightName)).setText("Some Text");
TextView.class.cast(findViewById(R.id.lbSightName).setText("Some Text");