强制BigDecimals使用科学记数法

我有这个方法: public void Example(BigDecimal value, int scale){ BigDecimal x = new BigDecimal(“0.00001”); System.out.println(“result: ” + (value.multiply(x)).setScale(scale, RoudingMode.HALF_UP).toString()); 例如,如果value = 1且scale = 2,则输出为“result:0.00”。 我以为它会是1.00E-5。 所以,我的疑问是:如果BigDecimal的规模大于某个值(在我的例子中是2),我如何强制将BigDecimal格式化为科学记数法?

为什么将{a,b,c}传递给方法不起作用?

我试图将初始化列表{…}传递给构造函数,但它不起作用。 当我在方法局部变量(int [])中声明它时,它可以完美地工作。 这是为什么? public class QuickSort { int[] a; public QuickSort(int[] a) { this.a = a; } public static void main(String[] args) { // ################### // ### WORKS ## // ################### int[] a = {8,12,79,12,50,44,8,0,7,289,1}; QuickSort sort = new QuickSort(a); // ################### // ### DOESN’T WORK ## // ################### //QuickSort sort = new QuickSort({8,12,79,12,50,44,8,0,7,289,1}); […]

由于Bean Validation API而无法启动Hibernate Validator

我正在尝试在我的项目中使用Hibernate Validator,但它无法正常工作。 在以下行: SessionFactory sessions = config.buildSessionFactory(builder.build()); 我得到以下exception: org.hibernate.cfg.beanvalidation.IntegrationException: Error activating Bean Validation integration at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:154) at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:311) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857) at net.myProject.server.util.HibernateUtil.(HibernateUtil.java:32) … 36 more Caused by: java.lang.NoSuchMethodError: javax.validation.spi.ConfigurationState.getParameterNameProvider()Ljavax/validation/ParameterNameProvider; at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.(ValidatorFactoryImpl.java:119) at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:45) at org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:217) at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111) 我发现这个问题与我的问题非常相似。 他将他的解决方案描述为 我在类路径中有另一个beanvalidation器jar。 但不是来自maven,所以我没有意识到这一点。 删除它解决了问题。 我认为我的问题是一样的。 在http://hibernate.org/validator/documentation/getting-started/上它说: 这种传递性依赖于Bean Validation API(javax.validation:validation-api:1.1.0.Final) 这必定会导致此问题,因为恢复到旧版本(4.3.1.Final)可以解决问题。 有没有办法强制Hibernate不引入Bean Validation API? 编辑:我试图排除javaxvalidationapi: org.hibernate hibernate-validator 5.0.3.Final […]

如何使用MongoDb中的jackson将Date字段存储为ISODate()

我试图使用fastxml jackson在mongo集合中持久保存java.util.Date字段的java对象。 问题是objectMapper的默认性质是将Date存储为NumberLong类型。 例如, java.util.Date类型的createdTime字段存储如下: “createdTime” : NumberLong(“1427728445176″) 我想将它存储在mongo Shell中可用的ISODate格式中。 现在,我知道有办法格式化对象映射器以将日期存储在字符串dateformat中。 但我只是在寻找ISODate()格式。 例如”createdTime” : ISODate(“2015-01-20T16:39:42.132Z”) 有没有办法做到这一点 ? 请告知大师。 在此先感谢您的帮助。

org.dbunit.dataset.NoSuchTableException:未在架构’null’中找到表’xxx’

我知道dbunit已经在这里进行了讨论。 我已经阅读了大部分内容,但我似乎无法找到解决问题的方法。 我已经设置了hibernate和弹簧。 我正在做TDD所以我必须在编写代码之前连接一个正确的DAO测试框架。 Dbunit浮现在脑海中,我必须设置它。 这是ma testdataset.xml statusId status 0 Available userId firstName lastName username password email 0 system admin admin admin admin@ccbs.com reservationId userId reservationDate startDate endDate statusId 0 0 2011-02-20 12:46:00.0 2011-03-01 12:00:00.0 2011-04-01 12:00:00.0 0 一切似乎都很好,直到我尝试使用加载数据集的基类连接一些代码。 这是我的代码: @Transactional @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { “classpath:test-applicationContext.xml” }) @TransactionConfiguration(transactionManager = “transactionManager”, defaultRollback = true) public class […]

如何在Java中将String数组转换为char数组

我们给出了一个字符串数组,我们需要的是一个char [],即所有字符串中所有字符的数组例如: 输入:[我,爱你] 输出:[i,l,o,v,e,y,o,u] 首先,我制作了一个数组数组。 然后我找到了所需char []数组的长度。 到目前为止,我已尝试过以下内容: char[][] a1 = new char[str.length][]; for(int i =0;i<str.length;i++){ a1[i]=str[i].toCharArray(); } int total=0; for(int i =0;i<str.length;i++){ total = total + a1[i].length; } char[] allchar = new char[total]; for(int i=0;i<str.length;i++){ //NOW HERE I WANT TO MERGE ALL THE char[] ARRAYS TOGETHER. //HOW SHOULD I DO THIS? }

iText – 避免最后一行不将页面拆分到下一页

我正在使用java在itext 5上工作。 我的页面包含多个动态行表。 在某些情况下,表格的最后一行将被拆分为下一页,其中包含以下标题。 我正在使用setHeaderRows()和setSkipFirstHeader()来管理下一页的继续。 最后一行有足够的空间放在前面的页面上。 我想将最后一行放在同一页面而不是下一页。 例如,在第1页上,最后一行被拆分为下一页的第一行。 相反,我想在第1页中安装该行,因此请保留一个包含所有空白的额外页面。 我尝试使用setExtendLastRow() ,但它无法正常工作。 有谁知道如何解决这个问题。 我附上了一份工作示例代码。 public class ProposalItextSplitLastRow { public static void main(String[] args) { try { Document document = new Document(); document.setPageSize(PageSize.LETTER); document.setMargins(16, 14, 14, 14); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“C:/SplitLastRow.pdf”)); document.open(); document.setPageSize(PageSize.LETTER); document.setMargins(16, 14, 42, 38); for (int m = 1; m < 20; […]

JTable – 布尔单元格类型 – 背景

我正在使用带有JTable的Nimbus L&F,它有一个布尔(复选框)元素作为其列之一。 我遇到的问题是布尔列不遵循Nimbus L&F中存在的自然行背景替换。

在ServletOutputStream中写入字节时断管

执行此代码时, ServletOutputStream out = response.getOutputStream(); out.write(bytes, 0, bytes.length); out.flush(); out.close(); 我经常得到这个例外,我无法弄清楚它为什么会发生。 Caused by: ClientAbortException: java.net.SocketException: Broken pipe at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:354) at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381) at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370) at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89) 我有一个在Linux服务器上运行的Web应用程序,在JBoss 4.2.3和MySQL下运行。 这是怎么造成的,如何解决?

自定义边框外的组件绘画

在这个自定义边框类中,我定义了一个RoundRectangle2D形状。 此对象用于绘制边框。 不幸的是,由于JComponent的paint方法在paintBorder之前调用paintComponent ,因此将Graphics剪辑设置为RoundRectangle2D形状没有任何效果; 即使我发出repaint 。 因此,组件将在其边界外部绘制,这是可以理解的不合需要的。 所以,我想知道:如何让组件专门在自定义边框内绘制? 我考虑的一种方法是在paintComponent方法中获取组件的Border对象。 然后将此对象转换为适当的类,其中我定义将影响剪辑的参数。 但这似乎不是一个“声音”设计。 编辑 – import java.awt.BasicStroke; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Insets; import java.awt.RenderingHints; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.SwingUtilities; import javax.swing.border.AbstractBorder; class JRoundedCornerBorder extends AbstractBorder { private static final long serialVersionUID = 7644739936531926341L; private static final int […]