我总是写这样的布尔表达式:
if (!isValid) {
// code
}
Run Code Online (Sandbox Code Playgroud)
但我的新雇主坚持以下风格:
if (false == isValid) {
// code
}
Run Code Online (Sandbox Code Playgroud)
一种风格是首选,还是标准?
我正在研究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存在部分.如何以正确的方式更改存储过程?
我遇到了一个具有不可变属性的类:
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)?" 因为这会完成同样的事情.