java - 仅用函数文件替换 OOP 代码(SP 而不是 OOP)

标签 java jsp oop

我不是 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/

相关文章:

java - 如何从 onCreate 中执行/调用方法?

java - Rest Api 调用使用 Spring Oauth2 给出错误 400

javascript - JSP 页面中的 FlexBox

mysql - jsp和mysql删除一行的方法

c# - 在执行过程中修改 C# Class 方法

Java - Action 监听器只响应一个 if 语句?

java - 创建一个可以被 Eclipse 和 Netbeans 理解的 Java 桌面用户界面

java - 在 servlet 中使用资源包?

python - 为什么我可以将元素分配给没有 setter 的列表?

javascript - js通过静态方法创建对象