java getter重载

Ker*_*nic 1 java

为什么我不能以下列方式重载类型JTextField的类成员:`

private JTextField m_oFilename=new JTextField();
    public JTextField filename()
        { return this.m_oFilename; }
    public String filename()
        { return this.m_oFilename.getText(); }
Run Code Online (Sandbox Code Playgroud)

rge*_*man 5

在Java中,重载是指具有不同方法签名的同名方法.但是,返回类型不是方法签名的一部分.

编译器必须知道要解析的返回类型,并且如果方法签名相同,则它不能区分它们或知道使用哪个,因此根据JLS 8.4.2 不允许这样.