情况是我必须为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";
}
};
但问题是有时我不需要提供 Theta,所以如果我删除它,多态性将不起作用,(10 个函数中有 2 个不需要 theta)所以我不得不把它(函数声明约定现在丑陋的)所以我想传递实际上包含netsum和theta的整个对象。
但我开始担心,因为它也会破坏这个功能的真正用途。所以最后我建议我把这些函数分开(非匿名),然后让匿名函数使用它们,但参数是对象。如下所示:
/** 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";
}
};
那么我是否采取了正确的步骤?或者我在胡闹,请指导我!