Java では、アクセス修飾子をデフォルト (空白) のままにしておくと、同じパッケージ内のメンバーのみがフィールドにアクセスできるようになります。ただし、これは、他の人が同じパッケージでクラスを宣言し、そこから「デフォルト」フィールドにアクセスすることを妨げているわけではありません。
JavaでフィールドをC#と同等にする方法はありますかinternal
? つまり、自分のライブラリ (JAR ファイル) をビルドするときに、他のユーザーが JAR の外部からそれらのフィールドにアクセスする方法はありませんか? クラスと同じパッケージでクラスを宣言する場合でも。
私のライブラリでの私の宣言は次のとおりです。
package com.my.package;
class MyRestrictedClass{
}
私が防ごうとしているのは、私のライブラリのユーザーが、次のようなビルド パスに追加された私の jar を使用してプロジェクトから実行することです。
package com.my.package; //Add their class to my package
public class DeveloperClass{
public void main(){
MyRestrictedClass foo = new MyRestrictedClass();
}
}