标签: apache-commons

如何在java中将字节大小转换为人类可读的格式?

如何在Java中将字节大小转换为人类可读的格式?像1024应该变成"1 Kb"而1024*1024应该变成"1 Mb".

我有点厌倦为每个项目编写这个实用工具方法.Apache Commons中是否有任何静态方法?

java formatting apache-commons

503
推荐指数
13
解决办法
20万
查看次数

248
推荐指数
8
解决办法
41万
查看次数

Google Guava vs. Apache Commons

我一直在寻找Java中的双向映射实现,并偶然发现了这两个库:

两者都是免费的,具有我正在寻找的双向地图实现(Apache中的BidiMap,Google中的BiMap),几乎相同的大小(Apache 493 kB,Google 499 kB)[编辑:不再是真的!]并且似乎在各方面都和我很相似.

我应该选择哪一个,为什么?是否有其他等效替代方案(必须是免费的并至少具有双向映射)?我正在使用最新的Java SE,所以不需要人为地限制Java 5或类似的东西.

java collections apache-commons guava

209
推荐指数
3
解决办法
6万
查看次数

Apache Commons等于/ hashCode构建器

我很想知道,人们在这里想到使用 org.apache.commons.lang.builder EqualsBuilder/ HashCodeBuilder 实现equals/ hashCode?这比写自己更好吗?它与Hibernate相处得好吗?你怎么看?

java hibernate equals hashcode apache-commons

155
推荐指数
4
解决办法
8万
查看次数

箭头操作符' - >'在Java中做什么?

在搜索一些代码时,我遇到了箭头操作符,它到底是做什么的?我以为Java没有箭头操作符.

return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> {
        return Car.SEDAN == ((Car)arg0).getStyle();
});
Run Code Online (Sandbox Code Playgroud)

详细信息:Java 6,Apache Commons Collection,IntelliJ 12

更新/答案:事实证明IntelliJ 12支持Java 8,它支持lambdas,并且"折叠"Predicates并将它们显示为lambda.下面是"未折叠"的代码.

return (Collection<Car>) CollectionUtils.select(listOfCars, new Predicate() {
    public boolean evaluate(Object arg0) {
        return Car.SEDAN == ((Car)arg0).getStyle();
    }
});
Run Code Online (Sandbox Code Playgroud)

java intellij-idea apache-commons java-8 apache-commons-collection

151
推荐指数
5
解决办法
17万
查看次数

使用HttpClient在Java中进行Http基本身份验证?

我试图模仿Java中这个curl命令的功能:

curl --basic --user username:password -d "" http://ipaddress/test/login
Run Code Online (Sandbox Code Playgroud)

我使用Commons HttpClient 3.0编写了以下内容但不知何故最终500 Internal Server Error从服务器获取了一个.有人能告诉我,如果我做错了吗?

public class HttpBasicAuth {

    private static final String ENCODING = "UTF-8";

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {

            HttpClient client = new HttpClient();

            client.getState().setCredentials(
                    new AuthScope("ipaddress", 443, "realm"),
                    new UsernamePasswordCredentials("test1", "test1")
                    );

            PostMethod post = new PostMethod(
                    "http://address/test/login");

            post.setDoAuthentication( true );

            try {
                int status = client.executeMethod( post );
                System.out.println(status + "\n" + …
Run Code Online (Sandbox Code Playgroud)

java http apache-commons

147
推荐指数
8
解决办法
40万
查看次数

如何在Java中将http响应主体作为字符串获取?

我知道曾经有一种方法可以通过apache commons来获取它,如下所示:http: //hc.apache.org/httpclient-legacy/apidocs/org/apache/commons/httpclient/HttpMethod.html 以及此处的示例:

http://www.kodejava.org/examples/416.html

但我相信这已被弃用了.是否还有其他方法可以在java中生成http get请求并将响应主体作为字符串而不是流来获取?

java apache-commons apache-httpclient-4.x

142
推荐指数
7
解决办法
41万
查看次数

guava和apache等价库之间有哪些重大改进?

我们目前使用apache集合,字符串utils等.我需要决定是否应该从apache基础实现切换.

重要的标准是开发人员易于使用.性能/内存使用对我们来说还不是一个重要的问题.发展速度是此时的关键标准.

我很欣赏有关番石榴开发人员的生活变得如此轻松的观点.

java apache-commons guava

123
推荐指数
3
解决办法
3万
查看次数

记录框架不兼容

我正在构建一个小型Java应用程序,并希望使用logback进行日志记录.

我的应用程序依赖于通过其进行日志记录的旧项目

org.apache.commons | com.springsource.org.apache.commons.logging | 1.1.1
Run Code Online (Sandbox Code Playgroud)

......所以我的计划是使用

org.slf4j | jcl-over-slf4j | 1.5.6
Run Code Online (Sandbox Code Playgroud)

...将JCL日志记录重定向到

org.slf4j | slf4j-api | 1.6.0
Run Code Online (Sandbox Code Playgroud)

......最终到了

ch.qos.logback | logback-classic | 0.9.22
ch.qos.logback | logback-core | 0.9.22
Run Code Online (Sandbox Code Playgroud)

所以我的应用程序可以通过其slf4j API登录logback,而旧的库代码可以通过重定向登录到同一位置.

唉,这导致了

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)
Run Code Online (Sandbox Code Playgroud)

我已经在其中一些罐子上尝试过更高和更低的版本号,并且还通过API文档等进行挖掘...但我无法找到并解决问题.

请帮忙?

虽然logback被认为是"战略"日志框架,但我有一些余地,我最终使用哪种日志记录机制.我希望使用logback或log4j,我肯定希望通过常见配置将旧项目的日志记录合并到"新"日志框架最终的任何内容中.

java compatibility logback apache-commons slf4j

109
推荐指数
3
解决办法
11万
查看次数

如何在Java中生成连续整数的列表或数组?

是否有一种简短而甜蜜的方式来生成一个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;  
}
Run Code Online (Sandbox Code Playgroud)

番石榴的使用很好.

更新:

绩效分析

由于这个问题已经收到了几个很好的答案,无论是使用本机Java 8还是第三方库,我都认为我会测试所有解决方案的性能.

第一个测试只是[1..10]使用以下方法测试创建10个元素的列表:

  • classicArrayList:上面在我的问题中给出的代码(和adarshr的答案基本相同).
  • eclipseCollections:下面使用Eclipse Collections 8.0 在Donald的回答中给出的代码.
  • guavaRange:daveb下面的答案中给出的代码.从技术上讲,这不是创造一个List<Integer>而是创造一个ContiguousSet<Integer>- 但由于它Iterable<Integer>按顺序实现,它主要用于我的目的.
  • intStreamRange:下面的Vladimir的答案中给出的代码,它使用了IntStream.rangeClosed()- 这是在Java 8中引入的.
  • streamIterate …

java arrays collections apache-commons guava

105
推荐指数
5
解决办法
8万
查看次数