私はScalaを学習しようとしていますので、データ構造を実装することに決めました。私はスタックを始めました。私は次のStackクラスを作成しました。JavaでScala作成クラスを初期化しようとしています
class Stack[A : Manifest]() {
var length:Int = -1
var data = new Array[A](100)
/**
* Returns the size of the Stack.
* @return the size of the stack
*/
def size = {length}
/**
* Returns the top element of the Stack without
* removing it.
* @return Stacks top element (not removed)
*/
def peek[A] = {data(length)}
/**
* Informs the developer if the Stack is empty.
* @return returns true if it is empty else false.
*/
def isEmpty = {if(length==0)true else false}
/**
* Pushes the specified element onto the Stack.
* @param The element to be pushed onto the Stack
*/
def push(i: A){
if(length+1 == data.size) reSize
length+=1
data(length) = i;
}
/**
* Pops the top element off of the Stack.
* @return the pop'd element.
*/
def pop[A] = {
length-=1
data(length)
}
/**
* Increases the size of the Stack by 100 indexes.
*/
private def reSize{
val oldData = data;
data = new Array[A](length+101)
for(i<-0 until length)data(i)=oldData(i)
}
}
私はその後、ただし、次の
Stack<Integer> stack = new Stack<Integer>();
を使用して、私のJavaクラスでこのクラスを初期化しようとすると、私はコンストラクタが存在しないことを、私は一致する引数を追加する必要があることを告げていますマニフェスト。なぜこれが起こり、どのように修正できますか?
+1、コンパイラの魔法なし 'Manifest'を作成することが可能です。私の答えを見てください。 – paradigmatic