2011-12-19 5 views
1

長いパッケージ名のため、jythonでJavaクラスをインポートするのは面倒です。例えばcom.example.x.y.z.SomeClass。それはたくさんのタイピングです。私はクラスの単純な名前(私の例ではSomeClass)だけを使ってインポートしたいと思います。それを達成する方法はありますか?jythonのディレクトリにあるすべてのjavaクラスを列挙する方法

工ass - - > com.example.xyzSomeClass
SomeOtherClass - > com.example私の頭の中で現在のソリューションは、クラスパス内のすべてのクラスを列挙など、完全なパッケージ名に単純なクラス名のマップを準備することです.pqrSomeOtherClass

などは、その後の各クラスについてbelow-

def intelligent_import(simple_class_name): 
    #No error checking, simplified for clarity 
    package_name = dict[simle_class_name] 
    simple_class_name = __import__(package_name) 

のような機能のものを呼び出します。唯一の問題は、ディレクトリ内のすべてのクラスをenumearteするメソッドがわからないことです。これを行うより良い方法がありますか?そうでない場合は、ディレクトリ内のすべてのJavaクラスを列挙するメソッドが行います。

答えて

1

これはちょっとしたハックですが、私たちはそこにいますが、それ以外のものがすべて失敗した場合、JARファイルは単にZIPであり、各クラスはjarファイルに.classファイルを持つことに注意してください。

しかし、このようなインポートメカニズムをハッキングするのではなく、適切なオートコンプリート(つまりEclipse/PyDev、それは私の経験で確実にそれを行うことができる唯一のものです)を使用して、 -スペース。

+0

+1ここではEclipse/PyDevを使用しています(私はその著者として偏っていますが、PyDev自体を使用してPythonコードをかなり開発しており、自動インポートは貴重なIMHOです)。 –

関連する問題