2011-03-21 68 views
0

有没有办法在一行做到这一点:的Java:类型转换问题

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

我愿做掉宣告中介电视,就像这样:

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

不可能?

回答

5

你可以,但它不是最好的做法

((TextView) findViewById(R.id.lbSightName)).setText("Some Text"); 
TextView.class.cast(findViewById(R.id.lbSightName).setText("Some Text"); 
+0

谢谢,为什么不最佳实践? – 2011-03-21 17:09:49

+0

@Hein - 您应该更喜欢多态/访问者模式来实现instanceof/casting来分派Java。 – 2011-03-21 17:18:57

+0

你能举个例子吗? – 2011-03-21 17:29:20

2

凭借多一个组括号应该可以:

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

丹科schönjustkt! – 2011-03-21 17:32:07

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

只需加括号。

+0

Grazie Roma paztulio! – 2011-03-21 17:31:50

2

当然

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

muchas gracias! – 2011-03-21 17:30:57

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

merci beaucoup! – 2011-03-21 17:30:23

1

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

增加一个组括号的伎俩

+0

Baie dankie Deepak! – 2011-03-21 17:32:54