Java中受保护的Clone()方法:一个令人费解的决定
Java的clone()是一个特殊的方法,在java.lang中受保护。目的。为什么做出这个令人困惑的决定?
无法利用 Cloneable 接口
与可复制类实现可克隆接口的其他框架不同,Java 的clone() 没有在 Cloneable 中声明。因此,使用接口检查可克隆性是不可能的。像“if(a instanceof Cloneable)”这样的代码无法确定 'a' 是否支持克隆。
反射依赖
要绕过此限制,可以使用反射。然而,这种方法引入了不必要的复杂性,并且依赖于具体类实现的知识。它还依赖于严格的协议,通常没有文档记录且无法执行。
令人遗憾的设计
Effective Java 的作者 Josh Bloch 将 Cloneable 的设计标记为“一个错误”。它无法有效地宣传克隆支持,并强加了一个繁琐的协议。相反,他建议在类级别实现 Cloneable,确保遵守协议。
以上是为什么 Java 的 `clone()` 方法受到保护而不是 `Cloneable` 接口的一部分?的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver CS6
视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。