Convertir ou de jeter un Simple objet à l'Objet de l'autre classe
J'ai un objet pObject
Object pObject = someRpcCall();
Je ne connais pas le type de pObject
Ce que je sais, c'est System.out.println(pObject.toString())
sorties
{partner_shipping_id=12, partner_order_id=11, user_id=1, partner_invoice_id=13, pricelist_id=1, fiscal_position=false, payment_term=false}
Comment puis-je convertir ce pObject à obect de la classe suivante
import android.os.Parcel;
import android.os.Parcelable;
public class Customer implements Parcelable {
private int id;
private String name = "";
public Customer() {
//TODO Auto-generated constructor stub
}
/**
* This will be used only by the MyCreator
*
* @param source
*/
public Customer(Parcel source) {
/*
* Reconstruct from the Parcel
*/
id = source.readInt();
name = source.readString();
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return this.id;
}
public String getName() {
return this.name;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(name);
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
@Override
public Customer createFromParcel(Parcel source) {
return new Customer(source);
}
@Override
public Customer[] newArray(int size) {
return new Customer[size];
//TODO Auto-generated method stub
}
};
}
pObject est l'objet de la classe et il le fait également de mettre en œuvre parcelabel interface.
veuillez voir la mise à jour de question
Pas de description précise.plz explique pourquoi ce que vous avez besoin clairement?
veuillez voir la mise à jour de question
Pas de description précise.plz explique pourquoi ce que vous avez besoin clairement?
OriginalL'auteur Mithun Sreedharan | 2011-08-31
Vous devez vous connecter pour publier un commentaire.
Quoi de la sortie de
System.out.println(pObject.getClass().getName());
Si c'est la même
Customer
classe, alors vous pourriez lancer l'objet comme ceCustomer cust = (Customer) pObject;
pObject.getClass().getName()
rendementsjava.util.HashMap
Dans ce cas, vous avez besoin pour itérer sur toutes les paires clé/valeur et explicitement définir les valeurs. Il y aurait une sorte de cartographie de quelque part qui vous automatiser, mais au cas où vous n'avez pas l'utiliser ensuite comme ceci:
HashMap hashMap = (HashMap) pObject; Customer customer = new Customer(); customer.setId(hashMap.get("partner_shipping_id"));
Mais un tel codage en dur est généralement à éviter, sauf si vous n'avez pas un choix.System.out.println(pObject.getClass().getName())
astuce m'a vraiment aidé, ainsi l'acceptation de votre réponseIve a obtenu une question : Serait-il sans doute être possible d'effectuer les opérations suivantes
Class<pObject.getClass()> someObj=(pObject.getClass()) pObject
, Id tiens à convertir l'objet de façon dynamique, à sa classe, n'importe quelle classe il est.Les objets n'ont pas besoin de conversion, des références. Dynamique casting n'est pas possible au moment de la compilation.
pObject.getClass()
vous retournez unClass
. Générique appels sont le meilleur moyen de réflexion.OriginalL'auteur Rajeev Sreedharan