【问题标题】:How to return a string containing details of an instance of a class?如何返回包含类实例详细信息的字符串?
【发布时间】:2021-11-26 19:58:26
【问题描述】:

我正在尝试使用静态方法返回一个字符串,其中包含 Person 类中实例“a”的详细信息。它应该返回属性详细信息,如姓名、年龄等。我在主类中使用了一个构造函数来设置属性。但是,有人告诉我必须将静态方法放在我的主类中,但当我尝试时它不起作用。

{
    public static void main(String[] args)
    {
        Person a = new Person();
        public static String getDetails(Person a)
        {
            return null;
        }
        
    }
}

忽略空值。

【问题讨论】:

  • 在我的主
  • 这有点令人困惑,但 toString() 是否适合您(在您在 Person 类中覆盖它之后)?

标签: java static return static-methods


【解决方案1】:

您要做的是将方法getDetails() 放入主方法。这是不可能的,并且会引发编译时错误。

可以将它放在主中,如下所示:

public class Main {
    public static void main (String[] args) {
        // ...
    }
    
    private static String getDetails (Person p) {
        // ...
        return "";
    }
}

看到该方法应该做什么,我建议将它放在Person 类中。您可以覆盖toString 方法,该方法还有其他优点。看起来像这样(在Person 类中)

@Override
public String toString () {
    // ...
    // return detailed String
    return "";
}

当您在此类的实例上使用System.out.println() 时,也会调用此方法。

【讨论】:

    【解决方案2】:

    您可以尝试使用您的 IDE(eclipse 等)在 Person 类中生成一个 toString() 方法。 它将询问您想要包含在方法生成中的属性。 然后你可以调用那个方法 -

    {
        public static void main(String[] args)
        {
            Person a = new Person();
            public static String getDetails(Person a)
            {
                return a.toString();
            }
            
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 2013-12-09
      • 1970-01-01
      相关资源
      最近更新 更多