![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
やりたい事は、メインクラスより、同階層の全パッケージを取得(A)、
(A)より同階層の全クラスを取得(B)、
(B)より同階層の全メソッドを取得といったような事です。
例えば
public class a {
public static void main(String args[]) {
全パッケージの取得
全クラスの取得
全メソッドの取得
}
}
みたいな感じに。
試行錯誤したのですが、その処理を行う事の出来るメソッドかどうかも良く分からないし、
コンパイルエラーになるばかりで実現が出来ません。
・メインクラスから同階層のパッケージを取得してパッケージ名を出力。
・メインクラスからxパッケージ内の同階層のクラスを取得してクラス名を出力。
・メインクラスからxパッケージにあるyクラス内のメソッドを取得してメソッド名を出力。
上記のようなめちゃくちゃシンプルなコードを挙げてご教示願います。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?8acaa2e)
No.3ベストアンサー
- 回答日時:
どういったことをされたいのか不明なので断片的な回答になってしまいますが、
自分のパッケージを取得するには
Class#getPackageでできます。
パッケージに属する全てのクラスを取得する方法は、残念ながら存じません。
クラスが持っているメソッドを取得するには、Class#getMethodsで取得できます。
一度、JavaDocを眺めてみては如何でしょう?
java.lang.*とか、java.lang.reflectあたりが参考になると思います。
あとは、リフレクションについても調べてみて下さい。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?8acaa2e)
No.2
- 回答日時:
>Class.forName("xxx.yyy")の部分がClassNotFoundExceptionで落ちてします。
これは、コンパイル時にでるエラーでしょうか?
実行時エラーだと思いますが。
もし、実行時エラーだとしたら該当クラスへのクラスパスが通ってません。
javaファイルとclassライブラリは別物です。
もう一度ご確認してみて下さい。
クラスパスに通っている全てのパッケージを取得するには、Package#getPackagesを使います。
クラスから、メソッドを取得するには、Class#getMethodsを使います。
しかし、残念ながらパッケージに属するクラスは取得できません。
というか、私は発見できませんでした。
有難うございます。
ClassNotFoundExceptionは例外処理を入れてないせいでした。
一度getInterface()でインターフェースを取得出来た時に例外処理をしていないと思ったのですが、
確認したら例外処理してました^^;
しかも良く考えたら、『クラスパスに通っている全てのパッケージを取得』になりますね。
どうにかして『メインクラスと同階層にある全てのパッケージを取得』などを
する事は可能なのでしょうか?
自分で作ったクラスやメソッドだけを取得したいなーという考えだったのですが。
メソッド名を取得してから実行させたい時など、
上記のような事がムリならリテラルしかないのでしょうか?
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?8acaa2e)
No.1
- 回答日時:
まず、どこまで出来ているのかコードを見せて下さい。
そしたら、どこが間違ってるかアドバイスできるかもしれません。
この回答への補足
ごめんなさい、何にも出来ていません。
Class cls = Class.forName("xxx");
Class[] clss = cls.getClasses();
System.out.println(clss[i].getName());
という感じで利用するのかな?というトコだけです。
パッケージもメソッドも。
でもコンパイルでClass.forName("xxx.yyy")の部分がClassNotFoundExceptionで落ちてします。
xxx.yyyで指定したクラスがあるにも関わらず落ちます。
因みにxxx.yyyの中身は
package xxx;
public class yyy {
public void test() {
System.out.println("abc");
}
}
といった物です。
パッケージが持ってこれればクラスを持って来れそうだし、
クラスを持ってこれればメソッドは持って来れそうという安直な考えより
とりあえずパッケージの取得とクラスの取得とメソッドの取得が
出来るコードを知りたいです。
別にそれらの処理を関連付けて頂く必要は一切ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) エクセルVBA 3 2022/06/23 20:00
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ゲッターを使わないで変数にア...
-
Javaのインターフェースとabstr...
-
インタフェース、クラスの継承...
-
C#のクラスと継承が理解できま...
-
サニタイジングについて
-
javaでhttpのテキスト表示
-
JAVAの初歩でとても悩んでます・・
-
あるクラスであるかどうかを確...
-
Javaでmainからインスタンス化...
-
日本の教育って時間が無い中で...
-
エクセルVBAで、条件に一致する...
-
「天声人語」をインターネット...
-
private static という変数の修飾
-
ファイル読み込み/書き込み速度...
-
VBAのWindowオブジェクトとWork...
-
0 == False はいいけど
-
私はクラスLINEにまだ入れてな...
-
A・B・Cクラスとは?
-
同じパッケージ、クラス名が含...
-
VBAでvlookup関数から、別シー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
C# 「データが失なわれる可能性...
-
「ラッパークラス」の存在意義...
-
c++でのヘッダーファイルの循環...
-
(vba)他のアプリケーションの右...
-
「IOException は対応する try ...
-
ゲッターを使わないで変数にア...
-
「継承されたメソッドの可視性...
-
JavaでのAPIの覚え方ってみさな...
-
Javaで下線
-
Javaのインスタンス化の構文の...
-
VB DLLプロジェクトについて
-
【C#】クラスのコンストラクタ...
-
ASP.NETでの共通コードの書き方...
-
委譲って何ですか?
-
オーバーライドとラッパーの違い
-
抽象クラスをJUNITでテストする...
-
JTextFieldの入力制限
-
Commons-Discovery.jarとは?
-
setTextについて
おすすめ情報