java - Java中如何在公共(public)方法中声明私有(private)方法?

标签 java

对 Java 来说相当陌生,所以我希望措辞有意义。

我有一些 Java 代码需要在公共(public)方法中调用几次,如何通过将其放在公共(public)方法中并调用来重用该代码?

也许我让自己的事情变得困难,所以这里是代码示例。

public static final String parseText( final String text )
{
    StringBuffer parsedText = new StringBuffer();

    private static void appendParsedText( String snippet )
    {
        if ( parsedText.length() > 0 )
        {
            parsedText.append( ", " + snippet );
        }
        parsedText.append( snippet );
    }

    if ( text.contains( "string1" ) )
    {
        parsedText.appendParsedText("string1");
    }

    if ( text.contains( "string2" ) )
    {
        parsedText.appendParsedText("string2");
    }

    if ( text.contains( "string3" ) )
    {
        parsedText.appendParsedText("string3");
    }

    return parsedText.toString();
}

虽然代码无效,但希望它对我想要实现的目标有意义。我知道 Apache Commons StringUtils 中有一个 join() 方法,但它似乎有点过分了,这个方法是唯一需要发生这种情况的地方。

最佳答案

正如您所说,代码无法编译,因为 Java 不支持这样的构造。我建议您分别定义 parseText()appendParsedText() 并仅从公共(public)方法中调用私有(private)方法。

所以它看起来像这样:

public static final String parseText( final String text ) {
    return appendParsedText(text);
}

private static String appendParsedText( String snippet ) {
    StringBuffer parsedText = new StringBuffer();
    if ( parsedText.length() > 0 ) {
        parsedText.append( ", " + snippet );
    }
    parsedText.append( snippet );

    if ( text.contains( "string1" ) ) {
        accessTypes.appendAccessTypes("string1");
    }

    if ( text.contains( "string2" ) ) {
        accessTypes.appendAccessTypes("string2");
    }

    if ( text.contains( "string3" ) ) {
        accessTypes.appendAccessTypes("string3");
    }

    return parsedText.toString();
}

关于java - Java中如何在公共(public)方法中声明私有(private)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12066334/

相关文章:

具有 10 多个组的 Java 正则表达式

JavaFX ChangeListener 并不总是有效

java - 计算两个整数之间的总和(java)

java - 无法在 CentOS 上使用 Tika 解析 Outlook 正文

java - 多次声明相同的检查异常

java - 无法将值添加到我的嵌套 HashMap 中

java - Apache Camel 发送一条简单的消息

java - 覆盖持久实体的 hashCode () 和 equals () 方法的正确方法是什么?

java - AbstractTableModel setValueAt 方法未被调用

java - 如果为空,则发送空字符串到列表项