代码审查工具抱怨saveSafeScan中可能的空指针取消引用safeScanWarnings(...)在if行(safeScanWarnings!= Null&safeScanWarnings.size()> 0)
我想知道这怎么可能?这是因为我们通过引用返回集合吗?
protected void saveSafeScan(final Response response, final Dtec dtec) throws dtecException
{
Collection<String> safeScanWarnings = dtec.getSafeScanWarnings();
if (safeScanWarnings!=null && safeScanWarnings.size()>0)
{
Iterator<String> iterator = safeScanWarnings.iterator();
int i = 0;
while (iterator.hasNext())
{
String safeScanCode = iterator.next();
if (i == 0)
{
response.setSafeScanCode(safeScanCode);
response.setSafeScanCodeText(getMessage(String.format("DTECRESPONSE_SAFESCANCODE_%s",
StringUtils.trimToEmpty(safeScanCode))));
}
SafeScanWarning safeScan = new SafeScanWarning();
safeScan.setCode(safeScanCode);
safeScan.setMessage(String.format("DTECRESPONSE_SAFESCANCODE_%s", StringUtils.trimToEmpty(safeScanCode)));
safeScan.setPriority(i);
response.getSafeScanWarnings().add(safeScan);
i++;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读JPA上的Stackoverflow中的一些帖子,我读了JPA不支持接口的多个地方.有人可以分享它在现实世界项目中的含义.这是否意味着我们无法注释界面?
我们正在重新思考我们的技术堆栈,下面是我们的选择(由于应用程序的复杂性等原因,我们不能没有Spring和Hibernate).我们也从J2EE 1.4迁移到Java EE 5.
技术堆栈
现在问题是我想坚持本地交易,但其他团队成员想要使用JTA.我已经使用J2EE工作了9年,我一次又一次地听到人们建议如果我不需要两个阶段提交就坚持本地交易.这不仅是出于性能原因,而且本地事务的调试/故障排除比JTA容易得多(即使JTA仅在需要时进行单阶段提交).
我的建议是使用spring声明式事务管理+本地事务(HibernateTransactionManager)而不是容器JTA
我想确定我是偏执狂还是有一个有效的观点.我想听听Java EE世界其他人的想法.或者请给我一个合适的文章.
如果相同的独立工具也可以支持除文件系统之外的其他协议的浏览存储库,那就更好了
我正在评估一些测试自动化框架,并希望得到一些意见.我们有一个大型的信用处理业务应用程序,它有三个端点:web ui,soap和基本的http/post.我的要求如下.
我们的QA非常习惯于数据驱动的测试(所有输入数据都来自excel,因此断言的预期结果也是如此).基本上,Excel工作表中的每一行都包含输入数据和相应的预期结果.我们希望我们的质量检查只需编辑Excel工作表.我们的开发团队将负责提供必要的测试库/夹具.鉴于上述情况,我想使用1个单独的自动化框架,可以读取这些excel表并测试我的应用程序的所有端点,即web ui,soap和http/post.请告诉我哪个测试自动化框架符合我的需求.感谢一些指导和教程让我开始.
我一直在编写软件来解决业务问题.我在浏览其中一篇SO帖子时遇到了LIP.我用谷歌搜索,但我无法解释如何使用它来解决业务问题.感谢是否有人可以帮助我理解外行.
根据javadoc Class
每个数组也属于一个类,它反映为一个Class对象,由具有相同元素类型和维数的所有数组共享.
但是当我跑下面的时候
int[] intArray = { 1, 2 };
out.println(intArray.getClass().hashCode());
int[] int2Array = { 1, 2 };
out.println(int2Array.getClass().hashCode());
out.println(intArray.equals(int2Array));
Run Code Online (Sandbox Code Playgroud)
我得到以下输出
1641745
1641745
false
Run Code Online (Sandbox Code Playgroud)
我想知道为什么equals返回false,即使两个数组都是int类型并具有相同的维度.
我的地图看起来像这样
Map<String, <boolean, boolean, boolean, boolean>>
Run Code Online (Sandbox Code Playgroud) 我使用以下代码将数据发送到tcp服务器.我假设我需要使用socket.shutdownOutput()正确指示客户端已完成发送请求.我的假设是否正确?如果没有,请让我知道的目的shutdownOutput().还要感谢我能做的任何进一步优化.
客户
def address = new InetSocketAddress(tcpIpAddress, tcpPort as Integer)
clientSocket = new Socket()
clientSocket.connect(address, FIVE_SECONDS)
clientSocket.setSoTimeout(FIVE_SECONDS)
// default to 4K when writing to the server
BufferedOutputStream outputStream = new BufferedOutputStream(clientSocket.getOutputStream(), 4096)
//encode the data
final byte[] bytes = reqFFF.getBytes("8859_1")
outputStream.write(bytes,0,bytes.length)
outputStream.flush()
clientSocket.shutdownOutput()
Run Code Online (Sandbox Code Playgroud)
服务器
ServerSocket welcomeSocket = new ServerSocket(6789)
while(true)
{
println "ready to accept connections"
Socket connectionSocket = welcomeSocket.accept()
println "accepted client req"
BufferedInputStream inFromClient = new BufferedInputStream(connectionSocket.getInputStream())
BufferedOutputStream outToClient = new BufferedOutputStream(connectionSocket.getOutputStream())
ByteArrayOutputStream bos=new …Run Code Online (Sandbox Code Playgroud) 我们需要在同一个db模式中存储不同语言的char数据.Oracle 10g是我们的数据库.我希望有人已经这样做会给我更具体的指示,说明如何启用oracle 10g db.我们只需要存储来自多个语言环境的数据以及整理(希望所有主要数据库都支持这一点)在数据库级别的支持.我们不需要格式化日期,日期时间,数字,货币等.
我阅读了一些关于oracle的i18n支持的文档,但对它们的许多nls_*属性有些困惑.我应该使用nls_lang或nls_language或NLS_CHARACTERSET .....