情况是我必须在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";
}
};
我是否正在正确地采取措施?还是在胡乱尝试?请给我指导!