2011-06-23 10 views
0

私はjarファイルにカプセル化したいクラスのセットを持っています。しかし、それらのクラスのうちのほんの少数だけがユーザに「可視」であるべきである。可視になると私はクラスを公開し、残りはプライベートにしたいと思っています。しかし、私がブロードキャストレシーバのデフォルトの "保護された"可視性を使用し、別のパッケージからインテントを送信すると、IllegalAccessExceptionが返されます。これがどのように達成されるかについてのヒントは?jarファイル内のユーザーからいくつかのファイルを隠すには?

答えて

0

classがプライベートであるか「非表示」になる唯一の時間は、内部クラスの場合です。他の人があなたのクラスリソースを利用できないようにしようとするならば、修飾子を(private、public、protected)のままにしておくと、クラスパッケージが保護されます(修飾子がないときのデフォルト)。

たとえば、このクラスは、同じパッケージ内のクラスで見ることができます。

このクラスは、パッケージの外部からアクセス可能となるよう
package com.test; 

class Test { 

} 

:この中で、しかし

package com.test; 

public class Test { 

} 

別の人がパッケージ名com.testを使用して、クラスを使用することができます。

クラスの使用方法を厳密に制御したい場合は、public finalというマークを付けることができます。これにより、あなたのクラスを拡張することができなくなります。その後、クラスをインスタンス化できないようにコンストラクタをprivateにできます。これを行うと、扱っているクラスの新しいオブジェクトを返すメソッドstaticが必要になります。

jarを配布する場合は、これを処理するだけです。しかし、便利なコードライブラリの作成に役立つたくさんのオプションがあります(上で説明したように)。

関連する問題