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

Java说这个方法有一个构造函数名,java,arrays,eclipse,boolean,Java,Arrays,Eclipse,Boolean,我想返回数组的值加上递归调用的返回值 然而,出于某种原因,java不希望在构造函数之后有方法名 此外,当我试图将该方法转换为另一个方法时,在使用isAlindrome时会出现错误 我改变了我的程序,但仍然有错误 公共类isPalindrome { /** *这是应用程序的主要入口点 *@返回 */ 公共静态布尔主(字符串[]args) { String[]word={“KayaK”,“甜点,我强调了”}; 布尔isPalindrome(字符串[]数组、字符串s、字符串i) { 如果(i.cha

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

然而,出于某种原因,java不希望在构造函数之后有方法名

此外,当我试图将该方法转换为另一个方法时,在使用isAlindrome时会出现错误

我改变了我的程序,但仍然有错误


公共类isPalindrome
{
/**
*这是应用程序的主要入口点
*@返回
*/
公共静态布尔主(字符串[]args)
{

String[]word={“KayaK”,“甜点,我强调了”}; 布尔isPalindrome(字符串[]数组、字符串s、字符串i) { 如果(i.charAt(0)=s.charAt(0)) { System.out.println(“您输入了回文”); 返回true; } 其他的 { System.out.println(“您没有输入回文”); } } 尝试 { System.in.read(); } 捕获(可丢弃的t) { } }

}

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

一种修复方法是将类从
isPalindrome
重命名为
PalindromeFinder
或其他什么。这也将更好地与Java命名约定保持一致

编辑:请注意,您实际上从未在main中调用过您的方法;您尝试将局部变量分配给
isAlindrome
。这实际上并没有调用该方法。您需要使用
isAlindrome(…将您的参数放在这里…
调用该方法,并将结果存储在一个名为未使用的变量中


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

在java中,你不能使用类的名称作为变量名。该错误告诉您,只有该类的构造函数方法可以具有与该类相同的名称,并且构造函数不能返回int(它不返回任何内容)。

我建议将该类重命名为Palindrome或PalindromeHelper

但是如何返回数组呢

返回isAlindrome(数组,s.substring(1,s.length()-1))是问题所在

  • 如前所述,实际上并没有创建要返回的数组。提示:
    returnnewstring[]或
    return
    数组在哪里

  • 没有任何内容会修改数组,因此返回它没有意义

  • 你可以。。。如果有道理的话。。。修改作为参数传递的数组

  • 如果确实要从
    isPalindrome
    返回数组,则不能*同时返回
    true
    false
    。一个方法只能有一个声明的返回类型,而您的代码似乎“需要”两个;i、 e.
    String[]
    boolean
    。不能那样做


  • *好的,你可以。。。通过将返回类型声明为
    对象
    。但是这会给调用者带来困难,这将是非常糟糕的设计。

    +1-遵循Java命名约定将完全避免这个“问题”/我理解,但如何返回我的arrayreturn isAlindrome(array,s.substring(1,s.length()-1));有问题吗?这行吗??布尔值isAlindrome=新布尔值(“真”);布尔b=isAlindrome.booleanValue();小写“boolean”是一种基本类型,而不是对象。因此,您不能试图通过说“new boolean(…)”来调用构造函数,也不能尝试调用诸如“isAlindrome.booleanValue()”之类的方法。我理解taht,但如何返回数组数组数组应该表示什么?基本上,您使用s表示字符串数组,但isAlindrome似乎没有将字符串数组用于任何用途。我理解这一点,但如何返回数组将返回类型设置为
    boolean[]
    ,而不是
    boolean
    ,我想,但我不确定该方法的参数。
    
    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) { } }