给出以下函数调用C
:
fooFunc( barFunc(), bazFunc() );
Run Code Online (Sandbox Code Playgroud)
执行的顺序barFunc
和BazFunc
未指定,因此barFunc()
可以在in 之前bazFunc()
或bazFunc()
之前调用.barFunc()
C
并Java
指定函数参数表达式执行顺序或喜欢的C
是不确定?
Maven的Surefire(测试)插件将mvn test-compile
文件复制src/test/resources
到target/test-classes
.它编译.java
的src/test/java
,并复制编译的.class
文件target/test-classes
.
但它不会复制资源src/test/java
,并且能够将测试资源放在.java
与其资源类相同的目录中比在并行层次结构中更方便src/test/resources
.
是否有可能让Maven从中复制资源src/test/java
?
我想让我的团队使用混合技能级别来使用Google Guava.在Guava之前,我已经使用了Apache Collections(或其通用版本).
与Apache Collections相反,Guava在某些方面似乎更强大,但对于经验不足的程序员来说可能不太容易使用.这是我认为可以举例说明的一个领域.
我继承的代码包含很多循环,这些循环基本上是异构值的映射,探测它们的值,进行空检查,然后做一些微不足道的事情:
boolean foo( final List< MapLike > stuff, final String target ) {
final String upperCaseTarget = target.toUpperCase(0;
for( MapLike m : stuff ) {
final Maplike n = (MapLike) m.get( "hard coded string" );
if( n != null ) {
final String s = n.get( "another hard code string" );
if( s != null && s.toUpperCase().equals( upperCaseTarget ) ) {
return true ;
}
}
return false ;
}
Run Code Online (Sandbox Code Playgroud)
我最初的想法是使用Apache Collections Transformers:
boolean foo( …
Run Code Online (Sandbox Code Playgroud) 给定以下Oracle(10g)包定义:
create or replace PACKAGE "foo"
AS
bar VARCHAR2(32000) := NULL;
END;
Run Code Online (Sandbox Code Playgroud)
酒吧的范围是什么?每个会话是否都有自己的foo.bar,或者跨会话是foo.bar全局?
你能从参考文件中引用章节和经文吗?
我正在寻找一个可嵌入的Java ETL,即可以从Java代码调用的Extract Transform Load引擎.
我发现很难找到合适的产品.
我主要看的是将分隔的文本文件加载到数据库表中,并在此过程中进行一些小的转换.
我想要以下功能:
CloverETL允许在XML中指定映射,但数据库连接必须是JNDI名称或指定driverClass,url,dbusername,password等的属性文件.因为我已经javax.sql.Datasource
通过我的依赖注入框架设置了,所以属性文件看起来很痛苦,不健壮的,特别是如果我想在多个环境(dev,test,prod)中工作.
KETL告诉我"我们目前正在全面检修KETL™的文档.因此,只有安装指南已经更新." 诚实,但没有帮助.
八达通现在是"http://www.together.at/prod/database/tdt",正在"正在建设中".
Pentaho 似乎使用与CloverETL相同的"指定driverClass"样式,而不是使用数据源,但Pentaho的文档用于从java代码调用它们的引擎很难找到.
基本上我真的很想能够做这个伪代码:
extractTransformLoad(
getInputFile( "input.csv" ) ,
getXMLMapping( "myMappingFile.xml") ,
new DatabaseWriter( getDatasource() );
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我继承了一个货币金额使用双重类型的项目.
更糟糕的是,它使用的框架和框架自己的类使用双倍的金钱.
框架ORM还处理从数据库(和存储)到数据库的值的检索.在数据库中,货币值是类型编号(19,7),但框架ORM将它们映射到双精度数.
如果没有完全绕过框架类和ORM,我能做些什么来准确计算货币价值?
编辑:是的,我知道应该使用BigDecimal.问题是我与一个框架紧密相关,例如,类framework.commerce.pricing.ItemPriceInfo有成员double mRawTotalPrice; 和双mListPrice.我公司的应用程序自己的代码扩展了,例如,这个ItemPriceInfoClass.
实际上,我不能对我的公司说,"废弃两年的工作,花费数十万美元,基于此框架的代码,因为四舍五入的错误"
我有一个Linux盒子.如何查看我的HTML页面在Microsoft Internet Explorer中的呈现方式?如何在Internet Explorer中测试JavaScript功能?
我不想安装VM和Windows操作系统的副本.
使用Oracle,如何从systables/information_schema中找到索引名称和创建日期?
如何从systables/information_schema中复制创建索引的DDL,例如, create index indexname on tablename(column_name [, column_name....]) [local];
我继承了一个团队和一个(Java)代码库.
代码库使用了许多显式for each
循环.我想用Commons Collections Transformers和Predicates及其收集和转换方法替换那些(编辑:在将来的代码中).
但是,Commons Collection不是通用的.我的代码库的其余部分,无论它缺少什么,都是,而且我不想引入大量的转换.
所以我正在观看Commons-Collections with Generics(http://sourceforge.net/projects/collections/)和Guava(以前的Google Collections)(http://code.google.com/p/guava-libraries /).
问题一:是否一般或两者都被认为是安全的生产用途?你在生产中使用过吗?
问题二:两者中,你推荐哪一个?任何使用过两者的人的答案都很棒,任何使用过两者的答案都更好!
最后,我的团队包括中高层的承包商和Java中级和初级的员工(编辑:但在非OO编程方面具有多年经验).所以我不想引入多个集合库,我确实想要一个对我的团队来说不会太难用的集合库.
谢谢!
编辑:我想是因为样板的量掩盖和淹没了实际业务代码来代替显式循环.我有嵌套循环调用具有嵌套循环的函数,所有这些都是单行的.有了适当的引进和培养,我觉得我的球队会找到一个集合/变压器/谓语方法清洁,更清晰,更快地写,更易于阅读.
据我了解,Struts2动作类实例(与Struts1不同)可以是有状态的,因为动作的每个GET或POST都会创建一个支持动作类的新实例.
我还看到有一个标准(?)习惯用法(模式?)来提供输入形式:相同的.jsp用作两个不同动作的View组件,如下所示:
<action name="showForm" class="defaultActionThatDoesNothingExceptReturnSuccess">
<result name="success">inputForm.jsp</result>
</action>
<action name="validateAndProcessForm" class="realAction">
<result name="input">inputForm.jsp</result>
<result name="success">formProcessed.jsp</result>
</action>
Run Code Online (Sandbox Code Playgroud)
第一个操作只显示表单,而不验证输入或处理它..jsp中的表单发布到第二个操作:
<s:form action="validateAndProcessForm" method="post">
Run Code Online (Sandbox Code Playgroud)
并且第二个动作验证发布的字段/参数,如果表单的输入不完整或无效则返回"输入",或者execute
如果输入完整且有效则返回实际调用操作类,从而处理表单并返回(例如)formProcessed.jsp
显示的类似"谢谢你的意见!".
所以我们有这种"尖桩篱笆"的习语:
defaultAction- -> realAction-
| | | |
-> input.jsp- <--- -> success.jsp
Run Code Online (Sandbox Code Playgroud)
这样做是为了第一次input.jsp
显示,不调用验证(因此未显示验证错误),但是在点击该jsp上的提交按钮后,"真实"操作将验证输入,可能通过返回错误,调出input.jsp
将显示的无效输入.
这使我们回到有状态的,非单身的行为; 因为该操作是有状态的,因此不能在GET或POST之间共享,并且每个实例仅针对该GET或POST实例化,所以该操作无法知道特定会话是否多次"GET"同一页面.因此让showForm.action
将永远不会验证和歌厅validateAndProcessForm
将始终验证(并显示错误,如果该参数是无效的),即使是GET是第一次一个特定的会话"GETted"该URL.
这就是为什么我们需要"围栏帖子":第一个动作只是为了显示表格,第二个动作是为了捕捉输入.
我的理解是否正确?是否有一种不那么冗长的方法来做到这一点,不是在初始GET上验证输入,而是在POST上验证,而不必为每个表单都有两个动作?