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