在代号一中将 Storage.writeObject 与 Runnable 一起使用
Use Storage.writeObject with a Runnable in Codename One
在代号一中,无法编译如下代码:
Runnable r = (Runnable & Serializable)() -> Log.p("Serializable!");
我得到:
error: cannot find symbol
symbol: method getImplMethodKind()
location: interface SerializedLambda
有没有办法将 Runnable
写入存储?谢谢
没有。与 Java 序列化不同,我们不只写入 Class
数据对象的数据。由于字节码被转译为本机平台,因此没有适用的 class 数据可写。我们也不支持 Serializable
接口,只支持不兼容的 Externalizable
版本。
您可以基于此编写一些东西,但它不会像您创建常规 class 所需要的那样漂亮。那是因为我们不能使用反射巫术来动态加载结构奇怪的 class。
在代号一中,无法编译如下代码:
Runnable r = (Runnable & Serializable)() -> Log.p("Serializable!");
我得到:
error: cannot find symbol
symbol: method getImplMethodKind()
location: interface SerializedLambda
有没有办法将 Runnable
写入存储?谢谢
没有。与 Java 序列化不同,我们不只写入 Class
数据对象的数据。由于字节码被转译为本机平台,因此没有适用的 class 数据可写。我们也不支持 Serializable
接口,只支持不兼容的 Externalizable
版本。
您可以基于此编写一些东西,但它不会像您创建常规 class 所需要的那样漂亮。那是因为我们不能使用反射巫术来动态加载结构奇怪的 class。