Java中的新对象[]{}是什么意思?

Java中的新对象[]{}是什么意思?,java,Java,在Java中,您可以执行以下操作: new Object[] { /* parameters separated by comma */}; 事实上,在Spring框架的准备好的声明中使用了这一点。 例如: 这叫什么 那里发生了什么事 您如何访问这些参数 新对象[]{/*参数,用逗号分隔*/} 创建对象的匿名数组 用逗号分隔的参数是数组的元素 元素数是数组的长度它用于初始化对象的数组,索引0处的值为3 Object[] objs = new Object[]{3,4}; 同: Object

在Java中,您可以执行以下操作:

new Object[] { /* parameters separated by comma */};
事实上,在Spring框架的准备好的声明中使用了这一点。 例如:

  • 这叫什么
  • 那里发生了什么事
  • 您如何访问这些参数

新对象[]{/*参数,用逗号分隔*/}


创建
对象的匿名数组

用逗号分隔的参数是数组的元素


元素数是数组的
长度

它用于初始化
对象的数组,索引
0
处的值为
3

Object[] objs = new Object[]{3,4};
同:

Object[] objs = new Object[2];
objs[0] = 3;
objs[1] = 4;
Object[] obj = new Object[1];
objs[0] = 3;

因此,您可以作为objs[0]访问它

创建对象的匿名数组

new Object[] { /* parameters separated by comma */};
在索引0处使用值3初始化数组

new Object[] { 3 }
最后一个示例与以下示例相同:

Object[] objs = new Object[2];
objs[0] = 3;
objs[1] = 4;
Object[] obj = new Object[1];
objs[0] = 3;

代码新对象[]{/*参数,用逗号分隔*/}; 例如
newstring[]{“a”、“b”、“c”}
创建3个String类型的对象。

您问过这个问题:

  new Object[] { 3 }
正如其他答案所说,它正在创建和初始化一个对象数组,该数组将作为参数传递给
queryForList
方法

数组的实际类型将是
Object[]
,其长度将是
1
,其第一个元素将是
整数
对象。。。通过自动装箱
int
3
生成


你其余的问题对我来说没有多大意义:

  • 这叫什么
它被称为“创建和初始化数组”

  • 那里发生了什么事
它正在创建和初始化一个数组

  • 您如何访问这些参数

嗯。。。如示例所示?按价值计算?通过索引数组?不清楚您在问什么。

此代码可能被翻译为以下内容

private void queryforlist(string SQL, object[] parameters, Class c)
{
   //parameters is an array of objects used to replace the ? caracteres in the sql
   //text.

   if (parameters != null)
   {
     //we can access parameters by index inside the method
     for(int i=0; parameters.length; i++)
     {
       if (parameters[i] instanceof String )
       {
         //adding quotes to string for example
         String param = "\""+parameters[i]+"\"";
     
       } else if (parameters[i] instanceof Integer )
       {
         //Note is Integer not int because of AutoBoxing: 
       }
     }
   }
}   
这对于接受动态数据类型(如整数、字符串等)并单独处理它们非常有用,例如:在Oracle数据库/提供程序的情况下,在日期中添加到_date()

它被定义为一个接受多个参数的对象数组,因此,可以按照您想要的方式构建查询

这一具体行:

new Object[] { 3 }
可以翻译为:

Object[] AnonymousArrayObject  = new Object[1];
AnonymousArrayObject [0] = 3;
由于queryForList接收对象数组作为参数,因此有几种方法调用此方法:

示例1

getJdbcTemplate().queryForList(
    "DELETE FROM foo WHERE id = ?",
    new Object[] { 3 }, 
    String.class
);
示例2

Object[] Parameters = new Object[1];
parameters[0] = 3;

getJdbcTemplate().queryForList(
   "DELETE FROM foo WHERE id = ?",
   Parameters, 
   String.class
);
示例3

Object[] Parameters = new Object[] { 3 };

getJdbcTemplate().queryForList(
   "DELETE FROM foo WHERE id = ?",
   Parameters, 
   String.class
);
示例1、2和3正在做相同的事情

示例4

getJdbcTemplate().queryForList(
   "DELETE FROM foo WHERE id = ?",
   null, 
   String.class
);
示例5

Object[] Parameters = null;
getJdbcTemplate().queryForList(
   "DELETE FROM foo WHERE id = ?",
   Parameters, 
   String.class
);
示例4和5正在做相同的事情

这叫什么

这被称为数组创建和初始化的缩写。因为您不需要声明变量来访问特定时刻的对象数组

那里发生了什么事

在回答中解释

您如何访问这些参数

在回答中解释


新对象[]
表示它是一个
对象类型的数组
newobject[]{3}
是一种用整数3分配此数组的简写方法。

大多数情况下,此场景是在使用DAO示例或与数据库相关的应用程序时出现的 例如:- ========

public Emp getEmpById(int-id){
String sql=“select*from Emp99,其中id=?”;
返回template.queryForObject(sql,新对象[]{id},新
BeanPropertyRowMapper(Emp.class));

在上述示例查询中,参照动态用户请求ID号获取员工数据,所有员工都将其视为列表,分别为ID No动态响应请求的数据

,您在括号中初始化数组(<代码> {} /代码>)。在本例中使用
整数
3。数组没有方法add。我想您的意思是有一个列表…或
objs[0]=3;objs[1]=4;
um…数组在Java中没有
add
方法。我确信匿名类有
$id
(其中
id
是数字)在其类名的末尾,但我在“匿名数组”中没有看到这一部分。另外,我在官方Java教程中找不到这个术语。你有一些参考资料吗?我可以在哪里读到更多关于它们的资料?也许是Java语言规范?@Pshemo可能是,也可能会有所帮助。我已经看到了这一点,但我更喜欢官方来源。无论如何,感谢谷歌:)那里也没有关于匿名数组的信息。我想这只是comm发明的术语unity。无论如何,谢谢你的帮助。@Pshemo是的,这只是一种快速创建数组的简捷方法。它在一些书中提到过,比如