gpt4 book ai didi

java - 方括号后面跟着大括号难道不会导致数组初始化错误吗?

转载 作者:太空宇宙 更新时间:2023-11-04 07:47:07 25 4
gpt4 key购买 nike

这个问题来自使用 Spring 3 框架和由 Spring Scaffolding 过程生成的 GWT 前端的上下文。

问题 1

我对下面的 block 有两个问题。其中之一是“new String[] { key };”部分。方括号和大括号紧跟在它们后面怎么可以呢?方括号后面跟着大括号难道不会导致数组初始化错误吗?

问题 2

此外,它还表示此方法按照 DAO 层所需的顺序返回主键字段,但看起来此方法最多可以使用 Object[] 和 keyValuesAsText[] 返回一个键。由于输入只是一个字符串,怎么可能扩展它以返回 DAO 对象的键数组?

由于这是我在 stackoverflow 上提出的第一个问题,因此对于问题的质量和我提出问题的方式如有任何建议,我们将不胜感激。

代码

/**
* Returns the Primary Key field values in the order they are required by the DAO
layer to find by primary key
* @param key
* @return
*/
protected Object[] getPrimaryKeysFromGoogleKey(String key) {
String[] keyValuesAsText = new String[] { key };

Object[] keyValues = new Object[keyValuesAsText.length];
keyValues[0] = new Integer(keyValuesAsText[0]);

return keyValues;
}

最佳答案

问题1:

String[] keyValuesAsText = new String[] { key };

这是 Java 数组创建语法之一。另一种是

String[] keyValuesAsText = { key };

使用此语法,Java 根据同一行中声明的变量的类型推断数组的类型。

如果你写:

String[] keyValuesAsText;
keyValuesAsText = {key};

这不起作用,因为 Java 不会推断数组的类型。在这种情况下,您必须编写:

String[] keyValuesAsText;
keyValuesAsText = new String[] {key};

我不确定这是否是一个好的语言设计功能,因为编译器可以根据变量的类型推断数组的类型。

问题2:

protected Object[] getPrimaryKeysFromGoogleKey(String key) {
//creates an array with only one value so keyValuesAsText.length is always 1
String[] keyValuesAsText = new String[] { key };

//sames as Object[] keyValues = new Object[1];
Object[] keyValues = new Object[keyValuesAsText.length];

//sets the first value of the keyValues array to the Integer.parseInt(key);
keyValues[0] = new Integer(keyValuesAsText[0]);

//the entire method could be replaced with the following line:
//return new Object[] { new Integer(key) };
return keyValues;
}

它总是返回一个只有一个值的对象数组(从键解析的整数)。

关于java - 方括号后面跟着大括号难道不会导致数组初始化错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15120408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com