ClassCastException - java.lang.String无法强制转换为com.codename1.ui.Image

时间:2017-10-16 15:32:03

标签: codenameone

我正在使用包含其他对象中的图像对象的JSON字符串。从这里我创建了一个PropertyBusinessObject,其中包含以下内容

public final Property<EncodedImage, Profile> profilePic = new Property<>("profilePic", EncodedImage.class);

我在PropertyBusinessObject

中创建了一个方法
public EncodedImage getProfilePic() {
    return profilePic.get();
}

我将数据填充到Property业务对象中,如下所示:

profile.getPropertyIndex().populateFromMap((Map) profileObject);

当我尝试使用以下代码在表单上显示图像时,

ScaleImageLabel profilePic = new ScaleImageLabel(profile.getProfilePic()) {
        @Override
        protected Dimension calcPreferredSize() {
            Dimension dimension = super.calcPreferredSize(); 
            dimension.setHeight(Math.min(dimension.getHeight(), Display.getInstance().convertToPixels(40)));
            return dimension;
        }
    };
    profilePic.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL);
    container.add(BorderLayout.NORTH, profilePic);

我得到一个ClassCastException

  

异常:java.lang.ClassCastException - java.lang.String无法强制转换为com.codename1.ui.Image

任何人都可以帮我解决,或建议使用其他方式来使用JSON字符串吗?

1 个答案:

答案 0 :(得分:1)

populateFromMap目前不支持Base64图片,我会将其作为选项添加,因为该用例是有意义的。星期五的更新应该在那里。