1

独自のクラスを java.lang に追加する簡単な方法はありますか (アプレット/サーブレットではなく、デスクトップ アプリケーションのコンテキストで)。アイデアは、ばかげてパッケージ非公開として宣言されたいくつかのメソッド (Integer.getChars(...) など) にアクセスすることです。そのコードをすべてコピーしたくありません)。

java.lang パッケージでクラスを宣言するだけで、クラスのロード時に SecurityException がトリガーされます。

rt.jar を解凍してそこにクラスを追加できることは承知していますが、インストール済みの JRE を変更する必要がない方法を探しています。

編集:リフレクションのような迂回アクセスメソッドではなく、メソッドに直接アクセスしたいことを忘れていました。目標は、 Integer.getChars(int, index, chars) のような呼び出しをコンパイルするだけでなく、実行時に正常に実行することです。

4

2 に答える 2

3

Javaリフレクションを使用してそれを行うことができます

Class<Integer> clazz = Integer.class;
Method m = clazz.getDeclaredMethod("getChars", int.class, int.class, char[].class);
m.setAccessible(true);
m.invoke(new Integer(1), 0, 0, new char[] {'1'});
// OR
//m.invoke(null , 0, 0, new char[] {'1'}); since getChars method is static and doesn't require an instance
于 2013-08-02T14:03:03.120 に答える