Java 说这个方法有一个构造函数名称

新手上路,请多包涵

我想返回我的数组的值加上递归调用的返回值。

但是,出于某种原因,Java 不希望在构造函数之后有方法名。

此外,当我尝试将方法转换为另一种方法时,使用 isPalindrome 时出现错误。

我改变了我的程序,但我仍然遇到错误。

 public class isPalindrome {
    /**
     * This is the main entry point for the application
     * @return
     */
    public static boolean main(String[] args) {

        String[] word = {"KayaK", "Desserts, I stressed"};



        boolean isPalindrome(String[] array, String s, String I) {

            if(i.charAt(0) == s.charAt(0)) {
                System.out.println("You entered a Palindrome");
                return true;
            }
            else {
                System.out.println("You didn't entered a Palindrome");
            }
        }


            try {
                System.in.read();
            } catch (Throwable t) {

            }
    }
}

原文由 lonesarah 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 396
2 个回答

您不能将类名用作方法名。唯一可以与类共享名称的“方法”是构造函数。

一种解决方法是将您的课程从 isPalindrome 重命名为 PalindromeFinder 或其他名称。这也将更好地符合 Java 命名约定。

编辑:请注意,您实际上从未在 main 中调用过您的方法;您试图将局部变量分配给 isPalindrome 。这实际上并没有调用该方法。您需要使用 isPalindrome(...put your parameters here...) 调用该方法,并将结果存储在一个名称未被使用的变量中。

另请注意,方法只能返回单个值(单个基元或单个对象)。如果你真的想返回一个数组和一个布尔值(我不确定你是否这样做),你必须将它们存储在一个对象中并返回该对象。

原文由 Michael McGowan 发布,翻译遵循 CC BY-SA 2.5 许可协议

但我将如何返回我的数组

return isPalindrome(array, s.substring(1, s.length()-1)); 是问题所在。

  1. 如所写,实际上没有创建要返回的数组。提示: return new String[]...return 数组在哪里?

  2. 没有任何修改 array ,所以没有必要返回它。

  3. 您可以……如果有意义……修改作为参数传递的数组。

  4. 如果你真的想从 isPalindrome 返回一个数组,你不能*也返回 truefalse 。一个方法只能有一个声明的返回类型,而您的代码似乎“需要”两个;即 String[]boolean 。不能那样做。

\* 好的,您可以…通过将返回类型声明为 Object 。但这会使调用者的生活变得困难,并且这将是非常糟糕的设计。

原文由 Stephen C 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏