Java 中等效名称
C# 6.0 引入了运算符,该运算符返回一个字符串,该字符串表示放入其中的任何类/函数/方法/局部变量/属性标识符的名称。nameof()
如果我有这样的课程:
class MyClass
{
public SomeOtherClass MyProperty { get; set; }
public void MyMethod()
{
var aLocalVariable = 12;
}
}
我可以像这样使用运算符:
// with class name:
var s = nameof(MyClass); // s == "MyClass"
// with properties:
var s = nameof(MyClass.OneProperty); // s == "OneProperty"
// with methods:
var s = nameof(MyClass.MyMethod); // s == "MyMethod"
// with local variables:
var s = nameof(aLocalVariable); // s == "aLocalVariable".
这很有用,因为在编译时会检查正确的字符串。如果我拼错了某个属性/方法/变量的名称,编译器会返回一个错误。另外,如果我重构,所有字符串都会自动更新。例如,有关实际用例,请参阅此文档。
在Java中是否有任何等效的运算符?否则,我如何获得相同的结果(或类似)?