0

I had a class, I wanted to enable Parcelable on it and this is the result

package ir

import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;

public class Mall  implements Parcelable {
  private Long _id;
  private String mallid;
  private String title;
  private String citytitle;
  private String cover;
  private Long deleted;
  private String description;
  private String email;
  private String jsongallery;
  private Long androidindoormapid;
  private String internalurl;
  private String facebooklink;
  private String googlepluslink;
  private String twitterlink;
  private String vkontaktelink;
  private String instagramlink;
  private String logo;
  private String phone;
  private String publicemail;
  private String publicphone;
  private String publicurl;
  private String shortid;
  private String jsonbusinesshours;
  private Double latitude;
  private Double longitude;
  private Long addresscityid;
  private String addressnotes;
  private String addressstreet;

  protected Mall(Parcel in) {
    mallid = in.readString();
    title = in.readString();
    citytitle = in.readString();
    cover = in.readString();
    description = in.readString();
    email = in.readString();
    jsongallery = in.readString();
    internalurl = in.readString();
    facebooklink = in.readString();
    googlepluslink = in.readString();
    twitterlink = in.readString();
    vkontaktelink = in.readString();
    instagramlink = in.readString();
    logo = in.readString();
    phone = in.readString();
    publicemail = in.readString();
    publicphone = in.readString();
    publicurl = in.readString();
    shortid = in.readString();
    jsonbusinesshours = in.readString();
    addressnotes = in.readString();
    addressstreet = in.readString();
  }

  public static final Creator<Mall> CREATOR = new Creator<Mall>() {
    @Override
    public Mall createFromParcel(Parcel in) {
      return new Mall(in);
    }

    @Override
    public Mall[] newArray(int size) {
      return new Mall[size];
    }
  };

  public Uri getLogoURI() {
    Uri uri = Uri.parse(this.logo);
    return uri;
  }

  public Uri getCoverURI() {
    Uri uri = Uri.parse(this.cover);
    return uri;
  }

  public Long get_id() {
    return _id;
  }

  public void set_id(Long _id) {
    this._id = _id;
  }

  public String getMallId() {
    return mallid;
  }

  public void setMallId(String mallid) {
    this.mallid = mallid;
  }

  public String getTitle() {
    return title;
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public String getCityTitle() {
    return citytitle;
  }

  public void setCityTitle(String citytitle) {
    this.citytitle = citytitle;
  }

  public String getCover() {
    return cover;
  }

  public void setCover(String cover) {
    this.cover = cover;
  }

  public Long getDeleted() {
    return deleted;
  }

  public void setDeleted(Long deleted) {
    this.deleted = deleted;
  }

  public String getDescription() {
    return description;
  }

  public void setDescription(String description) {
    this.description = description;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public String getJsonGallery() {
    return jsongallery;
  }

  public void setJsonGallery(String jsongallery) {
    this.jsongallery = jsongallery;
  }

  public Long getAndroidIndoorMapId() {
    return androidindoormapid;
  }

  public void setAndroidIndoorMapId(Long androidindoormapid) {
    this.androidindoormapid = androidindoormapid;
  }

  public String getInternalUrl() {
    return internalurl;
  }

  public void setInternalUrl(String internalurl) {
    this.internalurl = internalurl;
  }

  public String getFacebookLink() {
    return facebooklink;
  }

  public void setFacebookLink(String facebooklink) {
    this.facebooklink = facebooklink;
  }

  public String getGoogleplusLink() {
    return googlepluslink;
  }

  public void setGoogleplusLink(String googlepluslink) {
    this.googlepluslink = googlepluslink;
  }

  public String getTwitterLink() {
    return twitterlink;
  }

  public void setTwitterLink(String twitterlink) {
    this.twitterlink = twitterlink;
  }

  public String getVkontakteLink() {
    return vkontaktelink;
  }

  public void setVkontakteLink(String vkontaktelink) {
    this.vkontaktelink = vkontaktelink;
  }

  public String getInstagramLink() {
    return instagramlink;
  }

  public void setInstagramLink(String instagramlink) {
    this.instagramlink = instagramlink;
  }

  public String getLogo() {
    return logo;
  }

  public void setLogo(String logo) {
    this.logo = logo;
  }

  public String getPhone() {
    return phone;
  }

  public void setPhone(String phone) {
    this.phone = phone;
  }

  public String getPublicEmail() {
    return publicemail;
  }

  public void setPublicEmail(String publicemail) {
    this.publicemail = publicemail;
  }

  public String getPublicPhone() {
    return publicphone;
  }

  public void setPublicPhone(String publicphone) {
    this.publicphone = publicphone;
  }

  public String getPublicUrl() {
    return publicurl;
  }

  public void setPublicUrl(String publicurl) {
    this.publicurl = publicurl;
  }

  public String getShortId() {
    return shortid;
  }

  public void setShortId(String shortid) {
    this.shortid = shortid;
  }

  public String getJsonBusinessHours() {
    return jsonbusinesshours;
  }

  public void setJsonBusinessHours(String jsonbusinesshours) {
    this.jsonbusinesshours = jsonbusinesshours;
  }

  public Double getLatitude() {
    return latitude;
  }

  public void setLatitude(Double latitude) {
    this.latitude = latitude;
  }

  public Double getLongitude() {
    return longitude;
  }

  public void setLongitude(Double longitude) {
    this.longitude = longitude;
  }

  public Long getAddressCityId() {
    return addresscityid;
  }

  public void setAddressCityId(Long addresscityid) {
    this.addresscityid = addresscityid;
  }

  public String getAddressNotes() {
    return addressnotes;
  }

  public void setAddressNotes(String addressnotes) {
    this.addressnotes = addressnotes;
  }

  public String getAddressStreet() {
    return addressstreet;
  }

  public void setAddressStreet(String addressstreet) {
    this.addressstreet = addressstreet;
  }

  @Override
  public int describeContents() {
    return 0;
  }

  @Override
  public void writeToParcel(Parcel dest, int flags) {
    dest.writeLong(_id);
    dest.writeString(mallid);
    dest.writeString(title);
    dest.writeString(citytitle);
    dest.writeString(cover);
    dest.writeLong(deleted);
    dest.writeString(description);
    dest.writeString(email);
    dest.writeString(jsongallery);
    dest.writeLong(androidindoormapid);
    dest.writeString(internalurl);
    dest.writeString(facebooklink);
    dest.writeString(googlepluslink);
    dest.writeString(twitterlink);
    dest.writeString(vkontaktelink);
    dest.writeString(instagramlink);
    dest.writeString(logo);
    dest.writeString(phone);
    dest.writeString(publicemail);
    dest.writeString(publicphone);
    dest.writeString(publicurl);
    dest.writeString(shortid);
    dest.writeString(jsonbusinesshours);
    dest.writeDouble(latitude);
    dest.writeDouble(longitude);
    dest.writeLong(addresscityid);
    dest.writeString(addressnotes);
    dest.writeString(addressstreet);

  }
}

well ,Then I tried to access this classes methods using this code

Object newClass = Class.forName(Mall.Class.getName()).getConstructor().newInstance();

and here I get this error

java.lang.NoSuchMethodException: <init> []

I went forward and found that this part throws error

Class.forName(Mall.Class.getName()).getConstructor()

Before I change my class into a Parcelable one every thing worked fine. So what is my mistake? thanks

user2314737
  • 27,088
  • 20
  • 102
  • 114
Majid Hojati
  • 1,740
  • 4
  • 29
  • 61

0 Answers0