java编码标准

时间:2013-04-02 12:08:22

标签: java

我找到了如下所示的代码

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);

5 个答案:

答案 0 :(得分:4)

是的,您可以使用12的值,但这将是一个神奇的数字,它们通常被认为是不好的做法。

What is a magic number, and why is it bad?

答案 1 :(得分:3)

这个数组似乎存储列名及其数据类型(使用Object [] []有问题但有效):

您可以编写Integer.valueOf(12),但可读性将完全消失。 (严格来说,你可以写

{ "HistoryDate", Types.TIMESTAMP }

让autoboxing完成剩下的工作。)

答案 2 :(得分:2)

当然你可以编写新的Integer(12),但这会大大降低可读性。如果其他人手中拿到这个代码,他就不会知道这意味着什么。在这种情况下,他知道它引用了MySQL类型中VARCHAR类型的常量。

答案 3 :(得分:2)

为什么您的提案有所改进?我认为使用类型是更好的文档。它非常清楚地表明正在发生的事情是什么" 12"永远不会。

答案 4 :(得分:1)

是的,你可以,但这是常数的目的,对吧?如果有人决定将VARCHAR的值更改为1337,则无需更改代码......