0

是否可以使用特殊字符声明 java 属性名称,例如:

private String var/name;
private int one+one;

我问这个问题是因为我需要从 DB 中检索数据,其一个列的名称是annoces/status,并且我需要使用 sql 查询(不是 hql 或条件)

4

3 回答 3

3

这是不可能的:

变量名区分大小写。变量的名称可以是任何合法标识符——长度不限的 Unicode 字母和数字序列,以字母、美元符号“$”或下划线字符“_”开头。但是,惯例是始终以字母开头变量名,而不是“$”或“_”。此外,按照惯例,从不使用美元符号字符。您可能会发现在某些情况下自动生成的名称将包含美元符号,但您的变量名称应始终避免使用它。下划线字符也有类似的约定;虽然以“_”开头的变量名称在技术上是合法的,但不鼓励这种做法。不允许使用空格。

我不明白你为什么需要那个。

编辑

您可以使用类似 bbr.sendQuery("Select Status, Name, Annonces/Sta AS annoncesSta , From table ",MyObject.class); 使用AS,您可以更改在结果中收到的列的名称。所以你在java类中的属性可以是“annoncesSta”。

无论如何,列名都带有“/”,名称的最佳做法是:

  • 广播电台
  • 宣布_sta

大多数映射器会自动处理这些名称。

于 2012-11-05T14:59:41.627 回答
2

绝对不需要将 Java 变量命名为与某些数据库中某些表中的列名相同的名称。

如果您尝试在某些 Map 中存储列值,则 map 键可以具有您想要的任何特殊字符。

于 2012-11-05T15:05:19.883 回答
2

你不能做你所要求的 - 正如其他人所详述的那样。我建议的解决方案是整理数据库中的列名,以便它们遵循正常标准,然后您可以在 java.util 中使用相同的名称。

按照正常标准,我的意思是:

alphanumeric characters or the following special characters: $ _ #
于 2012-11-05T15:24:39.630 回答