我刚刚安装了Java 8的最终版本.当我尝试使用Maven构建我的项目时,如果我使用Java 8,许多测试都会失败,但是使用Java 7会很好.我尝试通过命令行运行它,并将JAVA_HOME设置为C:\ Program Files\Java\jdk1.8.0并通过Eclipse选择jdk1.8.0作为已安装JRE中的默认JRE.两者都失败了 请注意,失败的测试都使用Drools 6(及其依赖项).
这是输出:
-------------------------------------------------------------------------------
Test set: com.local.lds.rules.LocmChiTest
-------------------------------------------------------------------------------
Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 1.245 sec <<< FAILURE!
test(com.local.lds.rules.LocmChiTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:187)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at mockit.internal.util.MethodReflection.invoke(MethodReflection.java:63)
at mockit.Invocation.proceed(Invocation.java:192)
at mockit.integration.junit4.internal.BlockJUnit4ClassRunnerDecorator.createTest(BlockJUnit4ClassRunnerDecorator.java:59)
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at mockit.internal.util.MethodReflection.invokeWithCheckedThrows(MethodReflection.java:95)
at mockit.internal.mockups.MockMethodBridge.callMock(MockMethodBridge.java:75)
at mockit.internal.mockups.MockMethodBridge.invoke(MockMethodBridge.java:41)
at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java)
at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:236)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) …
Run Code Online (Sandbox Code Playgroud) 我正在使用JDBC(没有Spring,Hibernate或其他任何东西)在Java中编写一些简单的DAO.
将实现DAO放在与其接口相同的包中还是将它们放在子包中更好?
例:
com.mycompany.myproject.dao.MyDao
com.mycompany.myproject.dao.MyDaoImpl
Run Code Online (Sandbox Code Playgroud)
要么
com.mycompany.myproject.dao.MyDao
com.mycompany.myproject.dao.impl.MyDaoImpl
Run Code Online (Sandbox Code Playgroud)
如果你建议子包结构,你会建议什么作为子包名?.impl?.SQL?.jdbc?
实际上,我不会有多个实现.我是否过度设计了这个?
我想分一个回购集团打算与原始回购破坏关系.没有任何拉动请求或任何未来的合并.新的仓库将有一个新的项目名称.我不复制源文件并从头开始一个全新的repo的唯一原因是因为我想保留提交历史记录.我该怎么做呢?
澄清:我确实使用Github.我以前没有意识到Github特有的东西.根据我的具体需求,我有一个git repo,它包含两个独立的项目(一个Scala,一个Java).这两个项目的文件已经开始相互干扰,所以我要分配repo,并在新的repo中删除Scala项目的所有文件.在原始仓库中,我将删除Java项目的所有文件.
在过去的几年里,我学到了很多关于JMX的知识,并为我的Web应用程序构建了一些非常漂亮的MBean.但是,我不确定我对一个非常基本的问题有一个很好的答案:
为什么在简单的HTTP servlet上使用JMX?
我当前的Web应用程序提供了冗余监视选项:我可以通过JMX等客户端访问需要通过JMX监视的数据,或者我可以通过servlet访问XML格式的相同数据.我没有看到使用一种方法而不是另一种方法的强烈理由,但servlet方法确实具有可通过简单的http客户端/ Web浏览器读取的主要优点.
我可以看到JMX如何对非Web应用程序的Java应用程序非常有用,但我认为将JMX用于Web应用程序没有任何优势.
我真的很困惑如何MonetaryAmountFormat
使用Moneta JSR-354实现自定义.
我的意图是能够解析两者1.23
和$3.45
作为MonetaryAmount
s.
这是我的单元测试:
@Test
public void testString() {
Bid bid = new Bid("1.23");
assertEquals(1.23, bid.getValue(), 0.0);
System.out.println(bid);
bid = new Bid("$3.45");
assertEquals(3.45, bid.getValue(), 0.0);
System.out.println(bid);
}
Run Code Online (Sandbox Code Playgroud)
这是我的班级:
public final class Bid {
private static final CurrencyUnit USD = Monetary.getCurrency("USD");
private MonetaryAmount bid;
/**
* Constructor.
*
* @param bidStr the bid
*/
public Bid(String bidStr) {
MonetaryAmountFormat format = MonetaryFormats.getAmountFormat(
AmountFormatQueryBuilder.of(Locale.US)
.set("pattern", "###.##")
.build());
if (StringUtils.isNotBlank(bidStr)) {
bidStr = bidStr.trim();
bidStr …
Run Code Online (Sandbox Code Playgroud)