在另一个void函数内传递一个私有void函数(编译错误java)

时间:2015-02-20 08:53:02

标签: java compilation void

让我们说我有一个函数,当输入参数时,这些函数会将名称变为大写字母,其余的则以小写字母表示。

我有另一个功能来系统打印其他东西,包括我上面提到的功能。但我一直在收集编译错误,说'' void'这里不允许输入。

Java仍然很新,不知道如何调整它。有人可以帮我一把吗?

这是我提到的第一个功能

private void makePrettyString(String modelName)
    {

        // Change first letter of the name into upper case and store the first char only
        char first = Character.toUpperCase(modelName.charAt(0));

        // lower case the whole name
        String lower = modelName.toLowerCase();

        // store the whole name except the first char into the variable
        String restInLowerCase = lower.substring(1);

        // Combine the first char (which is upper case) and the rest of the name (which is in lower case)
        this.modelName = first+restInLowerCase; 
    }

获取一些细节的第二个功能

public void getCarDetails()
{
    System.out.println(makePrettyString(modelName));
}

5 个答案:

答案 0 :(得分:1)

谢谢大家的帮助! 我刚刚意识到这是我需要做的所有事情,将方法从void更改为String,当然每个人都说要返回一些东西 所以这个工作

private String makePrettyString(String modelName)
{

    // Change first letter of the name into upper case and store the first char only
    char first = Character.toUpperCase(modelName.charAt(0));

    // lower case the whole name
    String lower = modelName.toLowerCase();

    // store the whole name except the first char into the variable
    String restInLowerCase = lower.substring(1);

    // Combine the first char (which is upper case) and the rest of the name (which is in lower case)
    return = first+restInLowerCase; 
}

答案 1 :(得分:1)

将功能修改为:

private String makePrettyString(String modelName) {

   //Your existing code

   return this.modelName;
}

通过上面的工作,你的工作得到了解决,就像System.out.println(fun-call)一样,这个参数期望得到一些值,不幸的是这只是虚空!!

答案 2 :(得分:1)

将第一个方法的void更改为string。它必须返回一个字符串,所以将方法签名更改为字符串

像这样:

private String makePrettyString(String modelName)     // <-- change has to be made here  (String instead of void)
{

    // Change first letter of the name into upper case and store the first char only
    char first = Character.toUpperCase(modelName.charAt(0));

    // lower case the whole name
    String lower = modelName.toLowerCase();

    // store the whole name except the first char into the variable
    String restInLowerCase = lower.substring(1);

    // Combine the first char (which is upper case) and the rest of the name (which is in lower case)
    return = first+restInLowerCase; 
}

答案 3 :(得分:0)

该行 - &gt; System.out.println(makePrettyString(modelName));会导致错误,因为定义了PrintStream的类println()没有println()的重载方法,该方法将void作为参数。< / p>

检查所有重载方法here

只是为了清除注意,你不能在Java中使用接受void作为参数的方法。现在,void有一个占位符/包装,其名称为Void * *还需要Void类型的参数。

答案 4 :(得分:0)

如果getCarDetails()makePrettyString()两个方法属于同一个类,

简单写一下 makePrettyString(); System.out.println(this.modelName);

您可以使用makePrettyString(String modelName)方法访问this.modelName,而不是使用参数makePrettyString()

HTH。