众所周知,cloneable
是无法修复的(有关更多信息,请参见本问题中的讨论)。
关于替代方案和“我如何做得对”的最后一个问题已经有几年的历史了:
copyable
接口:A扩展copyable
.a
的istance引用B
的实例,则a.copy()
应引用新的B.copy()
.A.copyTo(a1)
.b
扩展a
,则a.copyto(b)
应将b
的所有属性从a
复制到b
。当然,我可以自己实现所有这些,但是有标准接口不是很合理吗?还是我漏掉了什么?
我的上下文的一点背景。我经常使用JAXB和模式派生类。对这些类进行深度复制通常非常有用。几年前,我编写了几个JAXB模式编译器插件来生成copyto
方法,这些方法实现了上述(以及更多)需求。我不得不使用自己的运行时API。现在我正在重新审视这个案子,并决定问问是否有一个标准的解决方案。
我多次使用的机制是序列化/反序列化。当然,这只在所有对象和元素都是可序列化的情况下才起作用,所以并不是在所有情况下都起作用。如果所有的对象都是可序列化的,那么这是一种非常有效的深度复制对象的方法。可以这样做:
public class SerializationHelper {
public static byte[] serialize(Object object) throws IOException {
ByteArrayOutputStream os = new ByteArrayOutputStream();
new ObjectOutputStream(os).writeObject(object);
return os.toByteArray();
}
@SuppressWarnings("unchecked")
public static <T> T deSerialize(byte[] array) throws IOException, ClassNotFoundException {
return (T)new ObjectInputStream(new ByteArrayInputStream(array)).readObject();
}
@SuppressWarnings("unchecked")
public static <T> T clone(T object) {
try {
return (T)deSerialize(serialize(object));
} catch (Exception e) {
throw new RuntimeException(e);
}
}
问题内容: 在游戏中,我有一个玩家列表,我们这样说: 我想让每个玩家与其他玩家互动,所以我写了两个嵌套循环: 由于我只希望每对玩家互动一次,因此我想在外循环的当前玩家之后与该玩家开始内循环。所以我想克隆迭代器,但是不能编译。 那么,我该怎么办呢? 问题答案: 将执行以下操作: 它依靠的能力从给定位置开始,并且还知道其当前位置。
第一步: 进入Github克隆界面 如果我们想使用Github上的开源项目,可以使用Android Studio直接下载项目代码。 操作步骤: 第1步: 进入Github克隆界面 三个路径: 欢迎界面: Check out project from Version Control —> Github 菜单栏: File —> New —> Project from Version Control
在较老一代的版本控制系统里,checkout是获取文件的标准操作。你将获得一组特定保 存状态的文件。 在Git和其他分布式版本控制系统里,克隆是标准的操作。通过创建整个仓库的克隆来获得文件。或者说,你实际上把整个中心服务器做了个镜像。凡是主仓库上能做的事, 你都能做。 封闭源码 闭源项目须避免执行touch命令,并确保你从未创建`git-daemon-export-ok`文件。资源 库不再可以通过
假设我有这门课: 以及子类: 我知道这是不可能的,但我想你明白我想要什么。如果Foobar实现了Cloneable,并且没有扩展AbstractFoo,那么子类就可以工作。我想我想要但不允许的是: 如果Foobar实现了Cloneable,并且没有扩展AbstractFoo,那么子类就可以工作。 除了扩展的抽象类,我怎么能做到“相同”?
我目前正在编写TensorFlow教程,需要下载源代码。当我运行时,我得到以下错误: 我正在我的家庭网络上工作,并且有最新版本的Git。 我尝试了以下命令,但没有成功: 有什么想法吗?
问题内容: 很多年前我使用过XStream,但是我发现自2008年以来就没有更新这些库(最新消息)。现在是否有一个更现代且最新的Java XML序列化库? 问题答案: 按照偏好,相关性和活动的顺序: 访问JAXB项目的站点,以查看教程和指南。还可以查看原始的JAXB体系结构白皮书。 上面列出的JAXB项目是API的参考实现,并由GlassFish Application Server打包在其中。