2017-10-28 14 views
0

nullReferenceエラーを取得せずに、いくつかのパラメータの有無にかかわらず、私のカスタムクラスからオブジェクトを作成する必要があります。 私のクラスがある:私はいくつかのパラメータなしで私のカスタムクラスを使用する必要があります

package upiynar.cback; 

import android.graphics.drawable.Drawable; 
import android.media.Image; 

/** 
* Created by shock on 10/24/2017. 
*/ 

public class Haber { 
    private String baslik; 
    private String kisaAciklama; 
    private String tarih; 
    private String resimURL; 

    public Haber(String baslik, String kisaAciklama, String tarih,String resimURL){ 
     super(); 
     this.baslik = baslik; 
     this.kisaAciklama = kisaAciklama; 
     this.tarih = tarih; 
     this.resimURL = resimURL; 
    } 
    public String getBaslik(){ 
     return baslik; 
    } 
    public String getKisaAciklama(){ 
     return kisaAciklama; 
    } 
    public String getTarih(){ 
     return tarih; 
    } 
    public String getResimURL() { 
     return resimURL; 
    } 
    public void setBaslik(String baslik){ 
     this.baslik = baslik; 
    } 
    public void setKisaAciklama(String kisaAciklama){ 
     this.kisaAciklama = kisaAciklama; 
    } 
    public void setTarih(String tarih){ 
     this.tarih = tarih; 
    } 
    public void setResimURL(String resimURL) { 
     this.resimURL = resimURL; 
    } 
} 

が、私はこのクラスに1以上のパラメータを追加したい、何かのように:問題がある

public Haber(String baslik, String kisaAciklama, String tarih,String resimURL,String uzunAciklama){ 
    super(); 
    this.baslik = baslik; 
    this.kisaAciklama = kisaAciklama; 
    this.tarih = tarih; 
    this.resimURL = resimURL; 
    this.uzunAciklama = uzunAciklama; 

、私はこのクラスから物事の2種類を作成したいでしょう以下のようなもの:

Haber("asdasda","asdasdsa","farfafa") 
Haber("asdasda","asdasdsa","farfafa","adfadsgsad") 

しかし、私が入力をいけない場合、すべての属性コンパイラはNullReferenceError.Whatを与える私はそれについて行うことができますか?私は余分なuzunAciklama文字列を持っている子クラスを作成することを考えましたが、私はそれを作れませんでした。

+1

3つのパラメータに対して、クラスhaber 'Haber( "asdasda"、 "asdasdsa"、 "farfafa")のコンストラクタはありませんか? – Alex

+0

私は何がコンストラクタであるか知りません:/すべてがここに何も見逃しています。 –

+1

データを渡さずに、コンストラクタをオーバーロードし、必要に応じてメンバーのデフォルト値を定義します –

答えて

1

をハチますコンストラクタは、デフォルトのパラメータとして"adfadsgsad"で2番目のコンストラクタによって呼び出されます。

+0

もし私がそのようなことをしたいのなら:public Haber(String baslik、String kisaAciklama、String tarih、String uzunAciklama){ Haber(baslik、kisaAciklama、tarih、uzunAciklama); }ここで私はthis.uzunAciklama = uzunAciklamaを入れようとしていますか? –

+0

'this.uzunAciklama'は、投稿されたコードにはないクラスフィールドのように見えるので、3番目のコンストラクタの理論的な5番目のパラメータになるか、1番目と2番目のコンストラクタを変更する必要があります。 – Alex

+0

オハイオ州、私は今すべてを理解しました。私は自分の英語のグレードをよく表現していませんが、私は何をしようとしているのか理解しました。 –

0

Haberクラスを呼び出すときにこれを行うことができます。 Haber( "asdasda"、 "asdasdsa"、 "farfafa"、 "");あなたはこの場合、最初にこの

public Haber(String baslik, String kisaAciklama, String tarih){ 
    Haber(baslik, kisaAciklama, tarih,"adfadsgsad"); 
} 

状の第2のコンストラクタを必要とするHaber("asdasda","asdasdsa","farfafa")するため

public Haber(String baslik, String kisaAciklama, String tarih,String resimURL){ 
    super(); 
    this.baslik = baslik; 
    this.kisaAciklama = kisaAciklama; 
    this.tarih = tarih; 
    this.resimURL = resimURL; 
} 

: だから、あなたの最後のパラメータは、これがクラスハーバーのコンストラクタで空

+0

これは最も単純な解決策であり、多くの場合に機能しますが、コンストラクタなどについて学ぶ必要があります。 –

関連する問題