- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
具有以下结构(在 Android Java 项目中):
public abstract class A {
...
}
public class B extends A {
...
}
public class C extends A {
...
}
在某些时候需要存储父类类型的列表,因为我们正在使用多态性。
但是,如果我们尝试像这样存储父类型的对象:
A aObject = xObject; //(xObject could be an object of type B or C)
Backendless.Persistence.save(aObject, new AsyncCallback<A>() { ...
我们将收到“无法更新没有任何属性的对象:CREATOR”错误,因为我们正在尝试存储抽象类。
这个目标有可能实现吗?子类 B 和 C 之间的区别在于它们执行某些操作(例如渲染某些图像和文本)的方式。
编辑 1:具体案例
具体案例是一个创建 Memes 的 Android 应用程序(Meme 是一个有趣的图像,里面有一些文本)。在这种情况下,Memes 可以用经典的方式绘制,即顶部有文本的图像和底部有另一个文本的图像。 Memes 也可以画成 Quote,这是一个右边有一个黑色方 block 的图像,下面是一个句子和作者。
为了模拟这个问题,我创建了一个抽象类 Meme,其中包含属性(名称、topText、bottomText、图像等...)和子类应该用来绘制图像的方法,以及两个子类 ClassicMeme 和QuoteMeme 以他们自己的方式绘制模因。
问题是,当用户创建一个 Meme 时,他可以切换要绘制的 Meme 类型,所以我需要一个多态引用来处理这种情况。当我继续存储 Meme(基类)对象时,我意识到这是不可能的,因为 Meme 是一个抽象类,当然我不知道这个基类引用中包含什么样的子对象。 (希望我解释清楚了)。
最佳答案
你出现这个问题的原因是类:
perform some actions like rendering some image and text differently
此问题/要求与您的数据模型类无关,因此不应属于同一类。数据模型类应该是只有属性且实际上为零功能的普通类。
因此,您应该创建一些“演示者”类或类似的类来拥有与数据显示方式相关的逻辑。当您需要显示数据时,创建其中一个类的实例并将数据模型类的实例传递给它。然后它可以获取所需的数据并根据需要显示。
通过这种方式,您的数据模型和持久层是干净有效的,并且您可以轻松添加您想要的任何表示样式,而不会影响该数据模型。
关于java - Backendless - 将对象保存为父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37374298/
具有以下结构(在 Android Java 项目中): public abstract class A { ... } public class B extends A { ... } p
我有两个表,其中有“照片 URL”列,其中包含相同的图像 URL。因此,当我更改一个表中的值时,我希望另一个表中的值自动更新。那么如何在 Backendless 中设置这种关系呢?就像 SQL 中的外
我正在使用 backendless 将用户对象保存在数据库中。我有一个从我的用户表到地址表的关系,地址表有两列,分别称为“城市”和“国家”。我如何检索这些对象? 最佳答案 您需要使用关系检索 API:
我正在寻找用于网站的后端存储,但我不知道有什么用:Firebase (NoSql) 或 Backendless (Sql)。 谁能告诉我区别、优缺点...? 最佳答案 我有使用 Firebase 实时
我正在尝试在 C# .net 4.5 应用程序上使用 Backendless API,但是没有办法让它工作,因为我得到了 "An unhandled exception of type 'System
我是 backendless.com 和 Realm.io 的新人 我需要制作一个简单的表格,其中包含类别和属于类别的一些项目 我在从 backendless 获取数据时遇到问题,因为我制作的类必须同
我正在尝试这样做,以便即使应用程序关闭,用户也可以保持登录状态。我似乎无法让我的功能正常工作。我有一个让用户登录的函数,当按下按钮时它就可以工作,但我似乎无法在正确的位置调用该函数以使其仅在用户第一次
我正在使用 Backendless 来处理 iOS 应用程序的数据和推送通知。我目前正在尝试用 Java 编写计时器的服务器端代码。 我已按照指南 here 进行操作下载计时器代码,打开它并在 Int
我在 Backendless Twitter 登录中发现了一个奇怪的行为,“loginWithTwitter”方法的两个可用用途是: loginWithTwitter( Activity co
如何使用 backendless 作为 BaaS,通过从移动应用程序触发的推送通知来定位特定用户?我是否应该保存每个用户的 DeviceToken,然后在我想推送通知时使用它? 最佳答案 这在文档中有
大家 我正在开发一个 Laravel 应用程序,它将在移动设备和 Web 版本上运行。最近我发现后端服务没有后端。如何在 laravel 中使用无后端服务? 最佳答案 我从未使用过 Backendle
如何进行单列验证所有特殊字符、某些字符范围和单个空格?使用什么数据类型? 最佳答案 数据类型必须是STRING,然后你可以使用正则表达式来验证它。这是有关此主题的教程:https://backendl
我正在尝试使用无后端 API 来注册用户。我一步一步地完成了正确导入框架所需的一切。 AppDelegate.swift 正在接受框架。 func application(applicatio
我已将我的 Parse 数据库导入 Backendless,我发现我的图像内容与字符串格式的数据有关,因此当我尝试获取它时,它仅显示为字符串(URL)。我如何调用或转换UIImage 的 URL。谢谢
我正在使用 Backendless 创建一个 Swift 应用程序。该应用程序会自动创建用户的用户名属性,但将来可能会更改。无论哪种方式,如果用户与另一个用户具有相同的用户名,我如何才能让 Backe
我在无后端应用程序中有对象模型,架构: public class Message{ public String objectId; private long created_at;
我第一次尝试使用 Backendless 运行我的应用程序。我收到此错误: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/bac
我正在使用“backendless.com”作为 BaaS,我需要的是从表中获取数据。这里我将对象保存到表中: function Products(args) { args = args ||
如何将 Backendless 数据库中的所有对象放入我的 iOS 应用程序的 UITableView 中? 查看他们的文档,它没有明确说明如何获取所有对象。 (我是这个平台的新手) 如有任何帮助,我
我正在尝试从后面的无尽表中加载数据,但我无法正确加载该表。它只是保持空白。我在多个地方尝试过,它们会导致崩溃。它唯一可以去的地方是在最后一个错误调用之后。然而,该表保持空白。相关代码在我的 fetch
我是一名优秀的程序员,十分优秀!