2011-07-29 18 views
1

実行時に特定のメンバーのアクセス修飾子を変更できる言語はありますか?動的アクセス修飾子

たとえば、オブジェクトが使用されているコンテキストに応じて情報を隠す/表示する場合などです。

答えて

0

ほとんどの言語でこれを行うことができますが、多くの場合パフォーマンスが低下します。たとえば、Javaでプライベートコンストラクタのアクセシビリティを変更するには、次のようにします。

Constructor constructor = MyClass.class.getDeclaredConstructor(paramTypes); 
constructor.setAccessible(true); 
MyClass instance = (MyClass)constructor.newInstance(params); 

お好きな言語でのクラスオブジェクトで利用できるメソッドを見て、あなたは、メソッドやフィールドで取得するいくつかの方法を参照してくださいよ、あなたがそれらのハンドルを持っていたら、あなたはそれらを乱用することができますあなたの心のコンテンツ。

+0

私はこの解決策を知っていましたが、プライベートフィールドにアクセスすることは可能です(まだプライベートです)。また、メンバーのアクセス指定子をパブリックからプライベートに、および/またはその逆に切り替えることはできません。 – anonymvs

関連する問題