我找到了如下所示的代码
public static final Object[][] TABLE_COLUMNS = {
{ "HistoryDate", new Integer(Types.TIMESTAMP) }, //java.sql.Type
{ "id", new Integer(Types.VARCHAR) },
{ "SessionId", new Integer(Types.VARCHAR) }};
以上代码有效且如何?可能是我误解了上面的代码
Type.VARCHAR=12
。我们不能写Integer.valueOf(12);
。
答案 0 :(得分:4)
是的,您可以使用12的值,但这将是一个神奇的数字,它们通常被认为是不好的做法。
答案 1 :(得分:3)
这个数组似乎存储列名及其数据类型(使用Object [] []有问题但有效):
您可以编写Integer.valueOf(12),但可读性将完全消失。 (严格来说,你可以写
{ "HistoryDate", Types.TIMESTAMP }
让autoboxing完成剩下的工作。)
答案 2 :(得分:2)
当然你可以编写新的Integer(12),但这会大大降低可读性。如果其他人手中拿到这个代码,他就不会知道这意味着什么。在这种情况下,他知道它引用了MySQL类型中VARCHAR类型的常量。
答案 3 :(得分:2)
为什么您的提案有所改进?我认为使用类型是更好的文档。它非常清楚地表明正在发生的事情是什么" 12"永远不会。
答案 4 :(得分:1)
是的,你可以,但这是常数的目的,对吧?如果有人决定将VARCHAR
的值更改为1337
,则无需更改代码......