Java の `clone()` メソッドが保護されており、`Cloneable` インターフェイスの一部ではないのはなぜですか?
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 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック







