2011-08-31 60 views
3

我有一個對象pObject的對象轉換或鑄造的簡單對象到另一個類

Object pObject = someRpcCall();

我不知道pObject

類型我知道什麼是System.out.println(pObject.toString())輸出

{partner_shipping_id=12, partner_order_id=11, user_id=1, partner_invoice_id=13, pricelist_id=1, fiscal_position=false, payment_term=false} 

如何將此pObject轉換爲以下類別的對象

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 
     } 

    }; 

} 
+1

pObject輸出是哪一類的對象,它也實現了parcelabel界面。 –

+0

@AndroidMirza請參閱更新後的問題 –

+0

沒有準確的description.plz exaplain你需要清楚的是什麼? –

回答

8

請告訴我的System.out.println(pObject.getClass().getName());

如果同一Customer類,那麼你可以把對象這樣

Customer cust = (Customer) pObject;

+0

'pObject.getClass()。getName()'產生'java.util.HashMap' –

+1

在這種情況下,您需要遍歷所有鍵/值對並明確設置值。在某些地方會有某種映射使你自動化,但是,如果你沒有使用它,像這樣: 'HashMap hashMap =(HashMap)pObject; 客戶客戶=新客戶(); customer.setId(hashMap.get(「partner_shipping_id」));' 但是這樣的硬編碼通常是最好的避免,除非你沒有選擇。 –

+0

'System.out.println(pObject.getClass()。getName())'提示真的幫助了我,所以接受你的回答 –