2014-09-19 29 views
0

我有兩個類NewsImageEventImage幾乎相同,因此他們繼承了Image抽象類。這兩個中的每一個代表我的Parse數據庫中的一個類。例外:「沒有默認構造函數提供」異常子類ParseObject

public abstract class Image extends ParseObject { 

    public Image(){}; 

    public String getImageId(){ 
     return getObjectId(); 
    } 

    public void setImageId(String imageId){ 
     setObjectId(imageId); 
    } 

    public byte[] getImageBytes(){ 
     try { 
      return getParseFile("image").getData(); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
      return null; 
     } 
    } 

    public void setImageBytes(byte[] bytes){ 
     put("image", new ParseFile(bytes)); 
    } 

    public Bitmap getBitmap(){ 
     return Toolbox.ByteArrayToBitmap(getImageBytes()); 
    } 

EventImage類

@ParseClassName("OSW_event_images") 
    public class EventImage extends Image { 

     public EventImage() { 
      super(); 

     } 

     public Event getEvent(){ 
      return (Event) getParseObject("event"); 
     } 

     public void setEvent(Event event){ 
      put("event", event); 
     } 

    }; 

NewsImage類

@ParseClassName("OSW_news_images") 
    public class NewsImage extends Image { 

     public NewsImage() { 
      super(); 

     } 

     public News getNews(){ 
      return (News) getParseObject("news"); 
     } 

     public void setNews(News event){ 
      put("news", event); 
     } 

    }; 

} 

我註冊這兩個類我稱之爲Parse.initialize()

ParseObject.registerSubclass(Image.EventImage.class); 
ParseObject.registerSubclass(Image.NewsImage.class); 

之前,我跑在此之後,我得到:

09-19 12:38:39.794: E/AndroidRuntime(25806): java.lang.RuntimeException: Unable to start activity ComponentInfo{pl.holdapp.osw/pl.holdapp.osw.activities.MainActivity}: java.lang.IllegalArgumentException: No default constructor provided for class pl.holdapp.osw.objects.Image$EventImage 
09-19 12:38:39.794: E/AndroidRuntime(25806): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305) 
+1

問題是,EventImage不是靜態嵌套類...它不能存在沒有外部圖像類實例...'pl.holdapp.osw.objects.Image $ EventImage' – Selvin 2014-09-19 10:48:04

回答

2

充分利用EventImage類的靜態。因爲它現在是默認的構造函數,所以需要隱式引用外部類。

+0

最終,我把它們都放在我的摘要'Image'類,但你肯定是正確的,如果沒有Image被實例化,那些類就不能存在。 – Booyaches 2014-09-19 10:57:27

相關問題