Это использует Processing 3.5, здесь не все java-компоненты работают одинаково.
Класс Bird выдает ошибку, в которой говорится, что ему нужно реализовать call ().Разве это не под основной?У меня нет опыта работы с интерфейсами, поэтому я не знаю, что именно здесь происходит.
public interface FuncCall<A> {
A call();
}
class Bird implements FuncCall{
//Error here ^
//The type FuncCallTest.Bird must implement the inherited abstract method FuncCallTest.FuncCall.call()
//Is this not implemented already under main?
float x, y, size;
ArrayList<FuncCall<Float>> inputs = new ArrayList<FuncCall<Float>>();
public Bird(float x, float y, float size){
this.x = x;
this.y = y;
this.size = size;
}
public void main(String[] args){
FuncCall<Float> getX = new FuncCall<Float>(){
@Override
public Float call(){
return x;
}
};
FuncCall<Float> getY = new FuncCall<Float>(){
@Override
public Float call(){
return y;
}
};
FuncCall<Float> getSize = new FuncCall<Float>(){
@Override
public Float call(){
return size;
}
};
inputs.add(getX);
inputs.add(getY);
inputs.add(getSize);
}
}
class Pol {
ArrayList<FuncCall<Float>> inputs = new ArrayList<FuncCall<Float>>();
public Pol(ArrayList<FuncCall<Float>> inputs){
this.inputs = inputs;
}
//public float call(ArrayList<FuncCall<Float>> arr, int index){
//return arr.get(index).call();
//}
//How do I do this? Do I need to implement the interface here as well? Because if so same error as on Bird
}
Я также добавлю этот дополнительный бит в конец здесь.System.out.println(pol.call(pol.inputs, 1));
Будет ли это работать?Это не ошибка перед компиляцией.
Я ценю любую помощь.Пожалуйста, спросите, если что-то не имеет смысла, так как я все еще новичок в стеке и не лучший в Java.:)
основной файл:
void setup(){
Bird bird = new Bird(1.2, 3.2, 7.5);
Pol pol = new Pol(bird.inputs);
System.out.println(pol.call(pol.inputs, 1););
}