是否可以使用特殊字符声明 java 属性名称,例如:
private String var/name;
private int one+one;
我问这个问题是因为我需要从 DB 中检索数据,其一个列的名称是annoces/status
,并且我需要使用 sql 查询(不是 hql 或条件)
这是不可能的:
变量名区分大小写。变量的名称可以是任何合法标识符——长度不限的 Unicode 字母和数字序列,以字母、美元符号“$”或下划线字符“_”开头。但是,惯例是始终以字母开头变量名,而不是“$”或“_”。此外,按照惯例,从不使用美元符号字符。您可能会发现在某些情况下自动生成的名称将包含美元符号,但您的变量名称应始终避免使用它。下划线字符也有类似的约定;虽然以“_”开头的变量名称在技术上是合法的,但不鼓励这种做法。不允许使用空格。
我不明白你为什么需要那个。
编辑
您可以使用类似 bbr.sendQuery("Select Status, Name, Annonces/Sta AS annoncesSta , From table ",MyObject.class); 使用AS,您可以更改在结果中收到的列的名称。所以你在java类中的属性可以是“annoncesSta”。
无论如何,列名都带有“/”,名称的最佳做法是:
大多数映射器会自动处理这些名称。
绝对不需要将 Java 变量命名为与某些数据库中某些表中的列名相同的名称。
如果您尝试在某些 Map 中存储列值,则 map 键可以具有您想要的任何特殊字符。
你不能做你所要求的 - 正如其他人所详述的那样。我建议的解决方案是整理数据库中的列名,以便它们遵循正常标准,然后您可以在 java.util 中使用相同的名称。
按照正常标准,我的意思是:
alphanumeric characters or the following special characters: $ _ #