小编Tim*_*thy的帖子

在Java中编写布尔表达式的首选方法是什么

我总是写这样的布尔表达式:

if (!isValid) {
  // code
}
Run Code Online (Sandbox Code Playgroud)

但我的新雇主坚持以下风格:

if (false == isValid) {
  // code
}
Run Code Online (Sandbox Code Playgroud)

一种风格是首选,还是标准?

java boolean coding-style

7
推荐指数
3
解决办法
1476
查看次数

SQL和存储过程中的多个语句

我正在研究SQL Server 2005,我有一个非常简单的存储过程:

create PROCEDURE [dbo].[tblTabel_Insert] 
@ID int,
@Code nvarchar(50) = null
AS
    SET NOCOUNT ON;

  IF  EXISTS (SELECT ID, code FROM tblTabel WHERE ID = @ID and code = @Code) 
    UPDATE tblTabel SET ID = @ID,code = @Code WHERE ID = @ID

ELSE
BEGIN

INSERT INTO tblTabel (ID,code) VALUES ( @ID ,@Code);
END
Run Code Online (Sandbox Code Playgroud)

我的问题是:在我的存储过程中有多个查询是否可行?我想添加这些行

UPDATE tblTabelB SET ID = @ID,code = @Code WHERE ID = @ID
UPDATE tblTabelC SET ID = @ID,code = @Code WHERE ID = @ID
Run Code Online (Sandbox Code Playgroud)

在我的if存在部分.如何以正确的方式更改存储过程?

sql sql-server-2005

4
推荐指数
2
解决办法
1万
查看次数

为什么要在内部使用MyObject [],但是公开List <MyObject>?

我遇到了一个具有不可变属性的类:

MyObject[] allObjs
Run Code Online (Sandbox Code Playgroud)

该属性初始化如下:

List<MyObject> objs = createAllMyObjects();
allObjs = objs.toArray(new MyObject[objs.size()]);
Run Code Online (Sandbox Code Playgroud)

当它通过访问器公开时,它作为List完成:

public List<MyObject> getAllMyObjects() {
    return Collections.unmodifiableList(Arrays.asList(allObjs));
}
Run Code Online (Sandbox Code Playgroud)

为什么程序员会这样做?有什么好处我不知道吗?

性能不是问题,因为objs数组只会在几十个元素中出现.

我们似乎正在四处转圈.

这个类是一种工厂,因此它有一个私有构造函数并且只暴露静态方法(不确定这是否是疯狂的原因).

编辑

我想我的问题是,"为什么不使用内部List<MyObject> allObjs而不是MyObject[] allObjs,并返回Collections.unmodifiableList(allObjs)?" 因为这会完成同样的事情.

java arrays collections

4
推荐指数
1
解决办法
260
查看次数