2011-11-17 17 views

答えて

2

システムでは、開発者がシステムを使用するのに適切なさまざまな要素が公開されています。

ランタイムで直接再生するプログラマーが心配です。システムがメソッドを呼び出すには、メソッドを公開する必要があります。

システムは、プログラマーによって呼び出されるのに適したランタイムメソッドへのアクセスを可能にするために、ランタイムへのインターフェースを提供します。 Systemメソッドを呼び出して、適切に委任させます。

+0

あなたは何を表現したいのか分かりません。 javaが開発者にランタイムを直接伝えないようにするには、パブリックではなく非公開にする必要があります。実際には、ランタイムのメソッドを自由に呼び出すことができます。 – Chao

+0

@Richard Runtimeクラスは、基になるJVMとOS環境を移植性のない方法で公開します。 Systemクラスは、JVMとOSの一貫した移植可能なビューを公開します。ランタイムは、Systemを含む多くのクラスが呼び出す必要があるため、プライベートにすることはできません。また、メソッドを直接呼び出すことが適切な場合もあります。 – BillThor

+0

可能であれば、常にSystemクラスを使用する方がよいとお考えですか?ショートカットメソッドはどこか良いアイデアかもしれませんが、このようなAPIデザインは本当に混乱しています。 – Chao

0

メソッドSystem#load(String)を例に見てみると、メソッドRuntime#load(String)が呼び出されています。 gc()と同じです。だから歴史的な理由からおそらくそうです。

+0

私は歴史的議論に同意しません。 Java 1.0 APIを見れば、システムとランタイムには常にメソッドが存在していることがわかります。 – Jonathan

4

私の推測(その推測を覚えておいてください)は、便宜のためにSystemクラスのメソッドがあります。たとえば、System.gc();は静的で、Runtime.gc();はインスタンスメソッドです。これにより、Runtimeインスタンスを取得する必要がないため、コールを簡単に行うことができます。

関連する問題