我有一个重复的方法,我不知道如何使用ormlite抽象

时间:2013-07-20 09:13:43

标签: android ormlite

这是我的代码

@DatabaseField
String image;      
Bitmap bitmapImage;

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

我使用此方法从字符串base64转换为位图,并在每个使用ormlite的实体类中使用它。每次我想更改ormlite字段时,我都需要注释位图代码,因为DatabaseConfigUtil会在我取消注释之后为我生成错误。我可能会将此代码放在抽象类中,但我不得不在抽象类中对DataField进行映像,因为ormlite对此结构不起作用。

这个问题的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:0)

创建Base类并使用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 = "";
        }
    }
}

答案 1 :(得分:0)

不要使用抽象类。将您的代码放在utils类中,并使用Utils.convertStringImageToBitmapImage(image)静态从您的实体调用此方法:

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

如果您可以在ImageHelper中编辑代码,则可以在CreateBitmapFromString方法中处理空参数场景,并直接从您的实体调用ImageHelper.CreateBitmapFromString(image)