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

时间:2011-03-02 03:31:07

标签: java arrays eclipse boolean

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

但是由于某些原因,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) { } }

}

4 个答案:

答案 0 :(得分:14)

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

一种解决方法是将您的班级从isPalindrome重命名为PalindromeFinder或其他内容。这也更符合Java命名约定。

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我建议将课程重命名为Palindrome或PalindromeHelper

答案 3 :(得分:0)

  

但我将如何返回我的数组

     

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

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

  2. 没有任何内容可以修改array,因此无法返回它。

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

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

  5. *好的,你可以......通过声明返回类型为Object。但是这会让调用者的生活变得困难,而且设计也会非常糟糕。