String ...args和String args[]是相同的意思吗

sunh_li 2010-12-19 06:21:31
在一个方法中看到String ...args,这个String ...args和String args[]是一个意思吗。

public void runQuery(String sql,boolean noUpdateCount,String ...args) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tran = session.beginTransaction();
Connection conn = session.connection();
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setEscapeProcessing(false);
if(args!=null&&args.length>0){
int size = args.length;
for(int i=0;i<size;i++){
String value = args[i];
pstmt.setString(i+1,value);
}
}
pstmt.execute();
tran.commit();
} catch (SQLException e) {
tran.rollback();
e.printStackTrace();
} finally {
try {
if(tran!=null){
tran=null;
}
if(pstmt!=null){
pstmt.close();
pstmt=null;
}
if(conn!=null)
{
conn.close();
conn=null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
...全文
258 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuchao1989 2010-12-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ticmy 的回复:]
是同一个意思

不同之处在于String... args只能用于参数,而不能用于数组声明
[/Quote]+1
liju123456 2010-12-20
  • 打赏
  • 举报
回复
还可以这么用
学习了
hzzduoduo 2010-12-20
  • 打赏
  • 举报
回复
一种是可变长参数传递,一种是数组传递。
根据情况的不同而使用。
softwarexiang120 2010-12-20
  • 打赏
  • 举报
回复
一种是可变长参数传递,一种是数组传递。
根据情况的不同而使用。
朱超ZhuChao.Tech 2010-12-20
  • 打赏
  • 举报
回复
楼主请查阅JDK5.0性特性之可变长参数。
zhanglongER123 2010-12-20
  • 打赏
  • 举报
回复
String...args这种方法不太好,它是直接列出对象名,但是此方法的优点在于比较好懂;而String [] args是用数组声明,这种方法比较专业。
ousyuryu 2010-12-20
  • 打赏
  • 举报
回复
怎么说呢,可以说不一致吗?

String ...args 是一个不定长参数。
String args[] 是一个数组作为参数。

对于接受方来说可以都当成数组来使用,

对于传递方来说,String ...args的使用要灵活的多。
我嘞个去 2010-12-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dyllove98 的回复:]
是同一个意思

不同之处在于String... args只能用于参数,而不能用于数组声明
[/Quote]



+1
aotian16 2010-12-19
  • 打赏
  • 举报
回复
还有这样的用法,学习了
licip 2010-12-19
  • 打赏
  • 举报
回复
同意一楼!
Jlins 2010-12-19
  • 打赏
  • 举报
回复
是同一个意思

不同之处在于String... args只能用于参数,而不能用于数组声明
guiyiqq 2010-12-19
  • 打赏
  • 举报
回复
同意楼上
龙四 2010-12-19
  • 打赏
  • 举报
回复
是同一个意思

不同之处在于String... args只能用于参数,而不能用于数组声明
rainsilence 2010-12-19
  • 打赏
  • 举报
回复
基本上一致

public void runQuery(String ...args)在调用的时候

可以写成
runQuery();=>args.length = 0
runQuery("1", "2"); =>args.length = 2

但是
public void runQuery(String[] args)

就必须传参数
runQuery(null);
runQuery(new String[] {"1", "2"});

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧