【问题标题】:What is the difference between String. and String.this. ? [duplicate]字符串有什么区别。和 String.this。 ? [复制]
【发布时间】:2013-08-27 14:50:22
【问题描述】:

我会直奔主题。 我还在学习一点语法,想知道这段代码有什么区别

代码 A:

 public class Buttonz extends JButton{

        public Buttonz(){
            setText(new String(String.valueOf(i)));
        }

    }

请忽略 i 未声明的事实,这不是我迷路的地方。

代码 B:

public class Buttonz extends JButton{

    public Buttonz(){
        setText(new String(String.this.charAt(i)));
    }

}

我还不明白输入 String.thisString. 的区别是什么

我假设当我在一个类上使用点运算符时,我正在访问它的静态方法(和/或变量,如果它们没有隐藏的话)。

我对此进行了一些研究,并得出结论,当使用 String. 时,我正在访问 String 静态方法。但在使用 String.this. 时,我正在访问我的类 Buttonz 正在扩展的方法。

这对吗?

如果我是对的并且浪费时间,我深表歉意。我需要确保继续前进。谢谢。

【问题讨论】:

  • 请发布可编译的代码。这些示例都无法编译,因此对它们进行评论很愚蠢。
  • 我不确定 String.this 是否正确。

标签: java methods syntax static this


【解决方案1】:

String.this 是“合格的this”语法。它用于引用this,如果当前类是String(在这种情况下不是),或者如果这是一个本地或匿名类(一种内部类),则this包含此类的名为String 的封闭类。你没有告诉我们这个类是否在另一个类中;我怀疑情况是否如此。但即使是这样,名为String 的封闭类也不会是java.lang.String,它必须是名为String 的其他类,因为您无法将代码添加到现有类中。然后,我非常怀疑它会有一个名为charAt() 的方法,它返回的东西可以传递给new String()。所以总而言之,这不是真正的代码。

【讨论】:

    猜你喜欢
    • 2011-02-26
    • 2011-09-05
    • 2018-11-12
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多