2011-03-21 73 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