2013-07-20 20 views
0

這是我的代碼我有一個重複的方法,我不知道我該如何使用抽象與ormlite

@DatabaseField 
String image;  
Bitmap bitmapImage; 

public void convertStringImageToBitmapImage() { 
    if (image != null) {   
     bitmapImage = ImageHelper.CreateBitmapFromString(image);    
     image = ""; 
    } 
} 

我用這個方法從字符串的base64轉換爲位圖,我用它在每一個實體使用ormlite的類。每次我想更改ormlite字段時,我都需要註釋位圖代碼,因爲DatabaseConfigUtil會在我取消註釋之後爲我創建錯誤。我可能會把這段代碼放在抽象類中,但我不得不在抽象類中映射DataField,因爲ormlite在這個結構中不起作用。

這個問題的最佳解決方案是什麼?

回答

0

創建基類並使用static關鍵字編寫您的方法。 在項目的任何地方使用此方法。

通過使用Classname,例如:Base.covertStringImageToBitmapImage(Bitmap bitmapImage,String image);

public class Base extends Activity { 
    public void convertStringImageToBitmapImage(Bitmap bitmapImage, String image) { 
     if (image != null) { 
      bitmapImage = ImageHelper.CreateBitmapFromString(image); 
      image = ""; 
     } 
    } 
} 
0

請勿使用抽象類。使用Utils.convertStringImageToBitmapImage(image)您的實體將代碼放在一個utils的類調用這個方法靜態:

public class Utils { 
     public static Bitmap convertStringImageToBitmapImage(String image) { 
      if (image != null) { 
       return ImageHelper.CreateBitmapFromString(image); 
       // this is useless now 
       // image = ""; 
      } 
     } 
    } 

如果你可以在裏面ImageHelper編輯代碼,你可以處理內部CreateBitmapFromString方法null參數的情況,並直接ImageHelper.CreateBitmapFromString(image)從實體調用。

相關問題