問題タブ [illegalaccessexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring 3.1 Web アプリケーションの問題
1つのコントローラーでシンプルなSpring MVCアプリを開発していました。war ファイルを展開すると、次の例外が発生します。
android - Android ビューのシリアル化 - IllegalAccessException から InvalidClassException が発生する
ウィジェット (ビューとして表される) をデータベースに格納し、後でそれらを再作成できるようにする Android アプリを作成しようとしています。
その要点は次のとおりです。
残念ながら、in.readObject()
はメッセージとともに InvalidClassException をスローしますandroid.view.View; IllegalAccessException
。
Android の View は Object を直接拡張し、Object には引数のないコンストラクタがあるため、これは機能しないのでしょうか? または、引数なしのコンストラクターで View を呼び出そうとしていますか? エラーメッセージは、例外の正確な原因が何であるかについてあまり明確ではありません.
誰がこれを引き起こしているのか、それを修正する方法を知っていますか?
java - javax.swing.text.html.HTMLDocument を拡張する不正アクセス
これを「簡単な方法」で行う方法があるかどうか疑問に思っており、おそらく誰かが解決策を知っています:
私はjavax.swing.text.html.HTMLDocumentクラスで作業していますが、何らかの理由で、必要な少なくとも2つのメソッドが非公開であるため、それらを「オーバーライド」していくつか変更する必要があります.しかし、何らかの方法で HTMLDocument クラスを保持する必要があるのは、javax.swing.text.html パッケージを大量に使用しているためです...
だから、私が最初にやったのは、MyHTMLDocument を作成して HTMLDocument を拡張し、いくつかのメソッドをオーバーライドしようとしたことです...それが失敗したとき、いくつかのメソッドでリフレクションを使用して解決しようとしましたが、機能していません..だから、必死になって、私はHTMLDocumentコードをMyHTMLDocumentとして「すべてコピーして貼り付け」(HTMLDocumentを拡張)し、必要なものを変更して自分の「javax.swing.text.html」パッケージに配置しましたが、今のところは機能しているようですが.. .
...最終的に実行すると、たとえばTagActionsを呼び出すと、「不正アクセスエラー」が発生し、イライラします...
誰かが私を助けてくれたら、本当に感謝しています。
アップデート:
わかりました、明確にしましょう:
クラス javax.swing.text.html.HTMLDocument には、次の 3 つのメソッドがあります。
public getReader(int pos)
public getReader(int pos, int pos, int popDepth, int pushDepth, HTML.Tag insertTag)
getReader(int pos, int pos, int popDepth, int pushDepth, HTML.Tag insertTag, boolean insertInsertTag)
最後のものは非公開または保護されています。
また、HTMLReader と呼ばれる内部クラスがあり、3 つのコンストラクターがあります。
public HTMLReader(int オフセット)
public HTMLReader(int オフセット、int popDepth、int pushDepth、HTML.Tag insertTag)
HTMLReader(int オフセット, int popDepth, int pushDepth, HTML.Tag insertTag, boolean insertInsertTag, boolean insertAfterImplied, boolean wantTrailingNewline)
繰り返しますが、最後のものは非公開です。
私がする必要があるのは、カスタム クラスから少なくとも次の 2 つの非パブリックを呼び出すことです: public class MyHTMLDocument extends HTMLDocument{
} しかし、私はそれを行う方法がわかりません..リフレクションを試してみましたが、メソッドでは機能するように見えますが、コンストラクターで同じことを行う方法が見つかりません...ありがとう。
java - Java サブクラスの保護されたメソッドの呼び出し中にメソッド アクセスが拒否されました
次の問題があります: クラスがあり、リフレクションを使用してその独自の保護されたメソッドの 1 つを呼び出そうとしていますが、例外が発生しています: java.lang.IllegalAccessException: メソッドへのアクセスが拒否されました
誰かがこれに光を当てることができますか?
基本クラス:
派生具象クラス:
java - java.lang.IllegalAccessError: 動的にロードされる子の内部クラスから親クラスのフィールドにアクセスしようとしています
子クラスを動的に使用してプログラムにデータをインポートできるように、既存のコードを変更しようとしています。しかし、私は問題に遭遇しました。動的にインポートしようとしているクラスの 1 つに、Java が IllegalAccessError をスローする原因となる抽象親クラス フィールドにアクセスする 2 つのサブクラスが含まれています。私が抱えている問題を実証するために、小さなテストプログラムを作成しました。
呼び出しコードは、URL クラス ローダーを作成し、クラスをロードしてから、do work メソッドを呼び出します。
Parent クラスには、3 つの int フィールドと抽象メソッドが含まれています。
子クラスは、do work が呼び出されると、内部クラスを作成し、親データ フィールドにアクセスしようとし、例外がスローされます。
public class ChildClass extends SuperClass {
エラーは、子クラスを jar としてエクスポートし、実行時に jar をロードするプログラムを実行した後にのみ発生します。
java - リフレクションを使用してオブジェクトのフィールドの値にアクセスする方法
私の質問:IllegalAccessException
リフレクションを使用してオブジェクトのフィールドの値にアクセスする方法を克服する方法。
拡張:自分のプロジェクトのいくつかをより汎用的にするために、リフレクションについて学ぼうとしています。そのオブジェクトのそのフィールドの値を取得するためIllegalAccessException
に呼び出そうとすると、エラーが発生します。field.getValue(object)
名前とタイプは問題なく取得できます。
宣言を から に変更するprivate
とpublic
、これは正常に機能します。しかし、カプセル化の「規則」に従うために、私はこれをしたくありません。どんな助けでも大歓迎です!ありがとう!
私のコード:
出力:
java - IllegalAccessException を生成する
StringSearch のアルゴリズムをテストしていますが、アルゴリズムには多くの IllegalAccessExceptions が含まれています。
コードが例外で正常に動作していることをテストしたかったのですが、例外が発生したときにいくつかの関数を呼び出すので、それらをテストすることも重要です。
例外を暗黙的に生成する方法を知りたかっただけです。
Java Security Manager を使用しようとしていますが、それを使用してプログラムの String クラスへのアクセスを取り消す方法がわかりません。
java - 例外をスローしないコード
以下に記述されたコードを実行しようとしていますが、コードは例外をスローする必要がありますが、それは実行されません
実際には IllegalAccessException をスローする必要があります。
ss4 はクラス BNDMWildcardsCI (文字列検索のアルゴリズムの 1 つ) のオブジェクトです cc、pattern3 は文字配列です str、pattern は文字列です
なぜ例外がスローされないのか、NoSuchMethodFound 例外がスローされないということは、メソッドを見つけることができることを意味します。
java - JSP IllegalAccessException は public メンバーにアクセスできません
JSP ファイルでは、Map の 1 つのアイテムを取得するために次の呼び出しを行います。
ファイルを実行すると、IllegalAccessException が発生します。
現在、これがどこから来たのかはわかりません。興味深いことに、このシステムは 4 人の開発者によって開発されており、その JSP ファイルは 3 台のマシンで問題なく動作します (すべて同じ方法で構成されています)。この例外が発生するマシンが 1 つあります。
java - Java-リフレクションを介してパブリックメンバーにアクセスする
SOの質問をたくさん読んだのですが、答えが見つからないようです。
私は次のクラスを持っています:
そして他の場所では、私はこれらの文字列にアクセスしようとしています:
IllegalAccessExceptionが発生するのはなぜですか?field.get行を削除すると、LogCatに次の行が表示されます。
参照:
リフレクションを使用してJavaでメンバー変数値を取得する際の落とし穴