自定义java类中的默认Get方法

Mat*_*sen 2 java getter-setter

java n00b在这里.

我有一个自定义数据类型定义如下:

public class MyData{
    int value;
    int type;
    String name;

    public MyData(int newValue, int newType, string newName)
    {
        value = newValue;
        type  = newType;
        name  = newName;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我调用这个类的实例时,我希望它计算value属性,如下所示:

myData dataInstance = new myData(100,3,"customData");
System.out.println(dataInstance); // should print "100"
Run Code Online (Sandbox Code Playgroud)

这可以实现吗?

Jon*_*eet 6

当你使用System.out.println一个对象时,它将调用该toString()方法 - 所以你只需要覆盖它:

@Override public String toString() {
    return String.valueOf(value);
}
Run Code Online (Sandbox Code Playgroud)

另请注意,您的术语应该更具体.你写的时候:

当我调用这个类的实例时

......这并不意味着什么.您不调用实例 - 您实例调用方法.在这种情况下,方法是toString.

  • @MathiasR.Jessen:正如 Jon 所解释的,如果您重写 `toString()`,则不必显式调用它,它将由 `System.out.println(dataInstance);` 自动完成 (2认同)