我不是 Java 专家,但我很好奇。假设我有这个:
String StringRepeater(String s, Qty q) {
String S = "";
for(int i = 0; i<q;i++) {
S +=s;
}
return S;
}
boolean MyComp(int a, int b) {
return (a<b);
}
我想用相应的 Java 代码替换之前的代码。我不想使用静态类。
可以实现它,但不能使用静态类/单例,我读到 Java 允许在结构化编程中实现此代码(不同于 OOP)(维基百科)。
最佳答案
如果您没有副作用或可变状态,那么使用静态方法就没有错。有关示例,请参见 java.lang.Math 类。
这可能看起来像:
public final class Util { // final disallows inheritance
private Util() {} // making constructor private disallows instantiating this
public static String repeat(String s, int times) {
StringBuilder builder = new StringBuilder("");
for (int i = 0; i < times; i++) {
builder.append(s);
}
return builder.toString();
}
}
这是通常的非 OO 过程方法。 Java 没有办法创建不属于某个类的独立函数。
您可以采用此静态方法并为其创建一个 EL 函数(参见 this answer)。这将为您提供一个可以在 JSP 中调用的函数。或者,您可以在 Controller 中调用该方法并使用返回值填充请求属性。
关于java - 仅用函数文件替换 OOP 代码(SP 而不是 OOP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20416611/