ich ein Projekt erstellt haben, die scala verwendet, die einige abstrakte Klassen Definitionen, zB:Integration von Java mit Scala: Erweiterung von Scala Klassen
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
}
Jetzt möchte ich das Projekt in Java verwenden. Ich habe scala lib in einem neuen Projekt importiert und scala-Projekt im Build-Pfad hinzugefügt. Ich benutze Eclipse.
aber wenn ich versuche, dies zu tun:
public class CoolClass extends B {
public CoolClass(){ }
}
EDIT:
Ich habe einige Probleme dies in Java verwenden, die mir einige Zweifel erhaben. Lassen Sie mich sie aufzählen:
- Kann ich Listen von Scala oder das gibt Fehler in Java?
- Warum Vars von A nicht in Klassen erkannt werden, die B in Java erweitern?
- Wie kann ich
getCs
erklären, so dass es eine Schnittstelle mitList<C>
stattList<C<?>>
bietet?
Der Konstrukteur löste einige Probleme, aber ich bekomme immer wieder Probleme und viele davon ergeben keinen Sinn. Ich bleibe bei einem Zweifel: Kann ich Listen (von Scala) verwenden? Oder Java mag das nicht? –
Klasse A hat 2 Variablen, die eine Liste als Typ haben, und Java kann diese Variablen nicht als Felder der Klasse A erkennen. –
Ist der Code, den Sie gepostet haben, der Code, mit dem Sie Probleme haben? Deine 'def getCs: Liste [C [_]]' kompiliert nicht, weil 'C' nicht bekannt ist.Du sprichst von 2 Feldern in der A-Klasse, könntest du bitte deinen ursprünglichen Beitrag entsprechend bearbeiten? – drexin