2

可能であれば、3 つの変数を受け取るが、最後の 2 つが渡されない場合にエラーが発生しないコンストラクターを作成するにはどうすればよいでしょうか?

何かのようなもの:

public void onCreate(Bundle savedInstanceState, String s1<non essential>) 
    {
4

3 に答える 3

12

コンストラクターをさらに作成する

public MyCreate(Bundle savedInstanceState) 
    {

public MyCreate(Bundle savedInstanceState, String s1) 
    {

public MyCreate(Bundle savedInstanceState, String s1, String s2) 
    {

コンストラクターのオーバーロードに関するこの記事を読んでみてください。

于 2012-04-05T21:33:56.323 に答える
0

これを行うには複数の方法があります。いくつか例を挙げると:

  • 異なる署名を持つ複数のコンストラクターを持つことができます
    dash1eによって提案されているように)
  • 必要な変数のタイプ(または
    完全に汎用にしたい場合はオブジェクト)
    のリストを作成し、リストを取得してその値が存在する場合はその値を使用するコンストラクターを作成できます。
  • カスタムデータモデルクラスを
    使用して、処理する3種類の値をカプセル化し、コンストラクター
    で使用できます。
    これにより、その値が
    クラスのコンストラクターによってフェッチされるときに、引数のオプションになります。欲しいです。
于 2012-04-05T21:39:46.890 に答える
0

私は本当にdash1eの答えが一番好きです。 Luis Miguel Serranoは、優れた追加の提案をいくつか提供しています。

さらに、必要に応じて、可変引数を使用できます

public MyCreate(Bundle savedInstanceState, String ... args) 

と同じ効果があります

public MyCreate(Bundle savedInstanceState, String [ ] args ) 

リストを使用する Luis Miguel Serrano と非常に似ていますが、リストを作成する手間を省くことができます。

于 2012-04-06T01:28:06.850 に答える