次のようないくつかの抽象クラス定義を持つ scala を使用するプロジェクトを作成しました。
abstract class A(n: String) {
require(n!= null)
val name = n
var inputs: List[Input[_]]
var outputs: List[Output[_]]
}
abstract class B(n: String) extends A(n){
def act
def isValid : Boolean
def getCs : List[C[_]]
}
abstract class C[Type]{
var value: Type
}
今、そのプロジェクトを Java で使用したいと考えています。新しいプロジェクトに scala lib をインポートし、ビルド パスに scala プロジェクトを追加しました。エクリプスを使用しています。
ただし、これを実行しようとすると:
public class CoolClass extends B {
public CoolClass(){ }
}
編集:
Javaでこれを使用する際にいくつか問題があり、疑問が生じました。それらを列挙しましょう:
- Scala のリストを使用したり、Java でエラーが発生したりすることはできますか?
- JavaでBを拡張するクラスでAの変数が認識されないのはなぜですか?
- の代わりに
getCs
インターフェイスを提供するように宣言するにはどうすればよいですか?List<C>
List<C<?>>