状況としては、Javaの非常に多くの関数に関数ポインターを使用する必要があり(このようにしたので)、各匿名クラスをインターフェイスの静的変数に保存して、直接使用できるようにしました。
/** The Constant HARDLIM. */
public static final TransferePatternable HARDLIM =
new TransferePatternable() {
public DoubleMatrix transfere(DoubleMatrix netSum, double theta) {
return netSum.gt(theta);
}
public String getFuncName() {
return "HARDLIM";
}
};
しかし、問題は、シータを提供する必要がない場合があるため、シータを削除するとポリモーフィズムが機能しないことです(10のうち2つの関数はシータを必要としません)。醜い)それで、実際にnetsumとthetaの両方を含むObject全体を渡すことを考えました。
しかし、私は心配し始めています。なぜなら、この関数が実際に何のためにあるのかを台無しにしてしまうからです。したがって、最後に、これらの関数を別々に(匿名ではない)配置し、匿名関数にそれらを使用させることを提案しましたが、引数はオブジェクトになります。次のように:
/** The Constant HARDLIM. */
public static final TransferePatternable HARDLIM =
new TransferePatternable() {
public DoubleMatrix transfere(MyObject obj) {
return MyObjectUtilFun.hardlim(obj.getNetsum,obj.getTheta);
}
public String getFuncName() {
return "HARDLIM";
}
};
だから私は正しいステップを踏んでいますか?または私はぐちゃぐちゃです、私を案内してください!