チェス AI サーバー用の Java フレームワークがあります。Scala を使用して、チェス AI のロジックを作成する予定です。そのため、フレームワークの「AI」クラスを編集して、Scala コードを呼び出す必要があります。
Scala で Java フレームワークからクラスを参照しようとすると、次のパターンのエラーが発生します。
class * in package * cannot be accessed in package *
私が見つけた最も関連性の高いものはこれでした: scala アクセス修飾子の保証は何ですか? 、しかし、それは私をまったく助けません。
次に、これを見つけました: .java と .scala クラスの間に循環依存関係を持つことは可能ですか? Maven ソリューションをセットアップしてみますが、最終的には make を使用してコンパイルし、シェル スクリプトを使用して実行する必要があります。
ダミー クラスを作成することは、不十分な解決策のように思えます。フレームワークを編集したり、再コンパイルしたり、Scala クラスの呼び出しに関する不満を修正したりしたくありません。
なぜこれが問題なのか、私は少し混乱しています。Java 構文を使用して任意のネイティブ Java 関数を呼び出すことができますが、問題ありません。フレームワークを jar に入れてそのように参照した場合でも、なぜこれが起こるのですか?