私は Java プログラマーではありませんが、C++、Scala、Python の OOP について非常によく知っているので、抽象的な説明は理解できます。
次のようなJavaコードで作業しています:
public class my_class implements ObjectReader<double[][]>, ObjectWriter<double[][]> {
private static final my_class instance = new my_class();
private my_class() {};
public static my_class getInstance(){
return instance
}
public double[][] functionName{String argument) {
// this is the function I want to use, but it is giving me some errors.
}
... MORE CODE AND BRACKETS AND SYNTACTICALLY CORRECT STUFF ...
ObjectReader と ObjectWriter は、このライブラリで次のように定義されています。
public interface ObjectReader<T>{
T functionName(String argument);
}
次に、jython 2.7でこのコードを使用したい(適切なインポートが行われ、何をすべきか)
my_class_instance = path.to.package.my_class()
data_i_want = my_class_instance.functionName("A String")
そして、エラーがあります
TypeError: No visible constructors for class path.to.package.my_class)
a) Java では、クラス本体でコンストラクターを指定すると、オーバーライドされたコンストラクターだと思います。「プリンシパル」コンストラクターは次のように指定されます。
public class my_class(type1 arg1, type2 arg 2, ...){
...
}
my_class はコンストラクターへの引数を必要としますか?
b) 次のように、jython コードから括弧を削除しようとしました。
my_class_instance = path.to.package.my_class // No more () here!
data_i_want = my_class_instance = my_class_instance.functionName("A String")
そしてエラーを取得します:
TypeError: functionName() expected 2 args; got 1
この 2 つの問題についてオンラインで多くの投稿を目にしますが、このなぞなぞの答えを頭のてっぺんから知っている人がいれば、時間を大幅に節約できます。午前2時だ、寝たい!