1

我需要像这样声明一个方法:

public void doSomething(Class class) {
...
}

当然,class参数名称是无效的,因为它是保留关键字。但是,在 C# 中,我可以使用@字符作为前缀来避免这种情况。不仅使用@我可以“解决”它,而且在编译时,在“字节码”(IL)级别,名称将被删除@字符。

Java中有类似的东西吗?我发现的只是_$。美元符号是最丑的,恕我直言。


后来编辑:我知道这个clazz东西,但我没有提到它,希望有更好的东西。如果那是最好的,那就这样吧。然而,所有保留关键字是否有一些对应表?类似的东西:

类->类,克拉兹

开关-> swytch,svvitch ...


后来编辑2:令人惊讶的是,一个合法的、恕我直言的问题可以产生多少尖刻的评论和无用的输入。我几乎后悔问了。


后来编辑 3:似乎在 Java 世界中最好的办法就是闭嘴,什么都不问。不要打扰任何人,即使没有人问/回答某个问题,也要保持安静,不要说话。

4

5 回答 5

3

事实上的标准是Class clazz。您会在许多 API 中看到它。

于 2013-11-13T09:53:53.210 回答
3

不,没有办法。关键字是保留的,不能使用。在我看来,使用一些奇怪的前缀(如在 C# 中)转义不是合适的解决方案,因为这会使代码变得更丑陋且可读性降低。

您可以在特殊情况下使用typeclazz

于 2013-11-13T09:56:01.177 回答
1

一个常见的约定是错误拼写参数名称。在您的情况下,您将调用参数clazz

public void doSomething(Class clazz) {
...
}

我知道这很丑,但它是 Java 社区采用的解决方案。

于 2013-11-13T09:54:25.587 回答
1

您不能将关键字用作 java 中的参数名称或变量名称(同样敏感)。

有几种选择:

  • 更改参数的大小写。Java 区分大小写,因此不会将参数视为保留字。
  • 使用与保留字相同的不同名称。
于 2013-11-13T09:56:37.663 回答
0

您的解决方案是clazz. 它更具可读性。

public void doSomething(Class clazz) {
 ...
}
于 2013-11-13T09:58:19.303 回答