当我试图读取一个csv时,我得到了这个错误信息: Exception in thread "main" java.lang.IllegalStateException: No header mapping was specified, the record values can't be accessed by name at org.apache.commons.csv.CSVRecord.get(CSVRecord.java:99) at mockdata.MockData.main(MockData.java:33) Java结果:1 我正在使用Apache Commons CSV库1.1。 试图用Googlesearch错误信息,我得到的唯一东西是在像grepcode这样的网站上列出的代码。 这是我的代码: package mockdata; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVRecord; public class MockData { /** * @param args the command […]
生成一个List<Integer> ,或者一个Integer[]或者int[] ,必须有一个简短而可爱的方法,用从某个start值到end值的顺序值。 也就是说,比以下更短,但相当于1 : void List<Integer> makeSequence(int begin, int end) { List<Integer> ret = new ArrayList<>(end – begin + 1); for (int i=begin; i<=end; i++) { ret.add(i); } return ret; } …但是它在逃避我 使用番石榴是好的。 更新: 性能分析 由于这个问题已经得到了几个很好的答案,无论是使用原生Java 8和第三方库,我想我会testing所有解决scheme的性能。 第一个testing简单地使用以下方法testing创build一个包含10个元素的列表[1..10] : classicArrayList :在我的问题上面给出的代码(和adarshr的答案基本相同)。 eclipseCollections :使用Eclipse Collections 8.0在Donald的答案中给出的代码。 guavaRange : daveb在下面的答案给出的代码。 从技术上讲,这不会创build一个List<Integer>而是创build一个ContiguousSet<Integer> – 但是由于它实现了Iterable<Integer> ,所以它主要用于我的目的。 intStreamRange :在下面的Vladimir的答案中给出的代码,它使用IntStream.rangeClosed() […]
我有一个简单的整数到string映射在Java中,但我需要能够轻松地从整数,也是从string整数检索string。 我试过Map,但是它只能从整数中检索string,这是一种方法: private static final Map<Integer, String> myMap = new HashMap<Integer, String>(); // This works one way: String myString = myMap.get(myInteger); // I would need something like: Integer myInteger = myMap.getKey(myString); 有没有一个正确的方法来做到双向? 另一个问题是,我只有一些不变的常量值( 1->"low", 2->"mid", 3->"high" ,所以它不值得去复杂解。
你使用StringUtils.EMPTY而不是"" ? 我的意思是要么作为返回值,要么设置一个stringvariables的值。 我不是要比较,因为我们使用StringUtils.isEmpty()
这两个连接池库似乎有很多混淆。 我想知道哪一个更好(如果有的话)? 以下是我想提出的一些观点…有人可以validation吗? Tomcat DBCP:使用默认的tomcat-dbcp.jar,它将出现在你的tomcat / lib目录下。 你的web-inf / lib中不需要commons-dbcp.jar或者commons-pool.jar库。 DB驱动程序应该放在tomcat / lib中。 Tomcat DBCP数据源类是org.apache.tomcat.dbcp.dbcp.BasicDataSource 。 Commons DBCP数据源类是org.apache.commons.dbcp.BasicDataSource 。 这两个唯一的区别可以在这个博客中find。 不知道信息是否正确。 官方的Tomcat文档中明确提到,大多数类只是被重新命名和重新打包。 所以问题是: 哪一个使用哪一个更好 ?
我有一个现有的应用程序,它会对log4j进行所有的日志logging。 我们使用一些其他库,它们也使用log4j,或者loginCommons Logging,最后在我们的环境下使用log4j。 我们的一个依赖关系甚至会logging下slf4j,它也可以正常工作,因为它最终也会委托给log4j。 现在,我想添加ehcache到这个应用程序的一些caching需求。 以前版本的ehcache使用了commons-logging,在这种情况下可以完美工作,但是从版本1.6-beta1开始,他们已经删除了对commons-logging的依赖关系,而是用java.util.logging代替它。 不是很熟悉java.util.logging中可用的内置JDK日志logging,是否有一种简单的方法可以将任何发送给JUL的日志消息logging到log4j中,所以我可以使用现有的configuration并设置任何日志logging从ehcache? 看看JUL的javadoc,看起来我可以设置一堆环境variables来改变使用哪个LogManager实现,也许用它来包装JUL Logger类中的log4j Logger 。 这是正确的方法吗? 有点讽刺的是,一个图书馆使用内置的JDK日志logging会在世界其他地方(大部分)使用第三方库时引起头痛。
我正在构build一个小的Java应用程序,并希望使用logback进行日志logging。 我的应用程序依赖于一个较老的项目,通过它进行日志logging org.apache.commons | com.springsource.org.apache.commons.logging | 1.1.1 …所以我的计划是使用 org.slf4j | jcl-over-slf4j | 1.5.6 …将JCL日志redirect到 org.slf4j | slf4j-api | 1.6.0 最终… ch.qos.logback | logback-classic | 0.9.22 ch.qos.logback | logback-core | 0.9.22 所以我的应用程序可以通过它的slf4j APIloginlogback,而旧的库代码可以通过redirectlogin到同一个位置。 唉,这个结果 java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:141) 我已经尝试了更高和更低的一些这些瓶子的verision号码,也挖通过API文档等…但我无法find并解决问题。 请帮助? 尽pipelogback被认为是“战略性”的日志框架,但是我最终还是会使用日志机制。 我希望可以使用logback或log4j,但是我确实希望通过一个通用的configuration将旧的项目的日志logging合并到“新”日志框架中。
我们目前使用apache集合,stringutils等,我需要决定是否应该从Apache基础实施切换。 重要的标准是开发人员使用的简便性。 性能/内存使用对我们来说还不是一个重要的问题。 发展速度是此时的关键标准。 我会很感激关于如何开发者的生活变得更容易与番石榴的意见。
我正在寻找在Java中的双向映射实现,偶然发现这两个库: Apache Commons集合 番石榴 (以前称为“Googlecollections”) 两者都是免费的,有我正在寻找的双向地图实现(Apache中的BidiMap,Google中的BiMap),几乎相同的尺寸(Apache 493 kB,Google 499 kB)[编辑:不再是真的!在所有方面都与我很相似。 我应该select哪一个,为什么? 还有其他一些等同的select(必须是免费的,至less有双向映射)? 我正在使用最新的Java SE,所以不需要人为限制Java 5或类似的东西。
如何在Java中将字节大小转换为可读格式? 像1024应该成为“1 Kb”和1024 * 1024应该成为“1Mb”。 我有点厌倦了为每个项目编写这个实用方法。 Apache Commons中有没有静态方法?