标签: apache-commons

对于C#,是否有相当于Java的ToStringBuilder?什么是好的C#版本功能?

在Java世界中,我们使用Apache Commons的ToStringBuilder来帮助创建toString()实现.

有没有人知道C#的免费实现?有没有更好的替代品我不知道?

如果不存在任何自由实现,那么我想这个问题就变成了一个问题"在C#3中什么会成为一个好的ToStringBuilder?"

脱离我的头顶:

  • 它可以提供反射和手动ToString字符串创建.

  • 如果可以使用表达式树,真的很酷.

像这样的东西......

 public override string ToString()
   {
      return new ToStringBuilder<Foo>(this)
         .Append(t => t.Id)
         .Append(t => t.Name)
         .ToString();
   }
Run Code Online (Sandbox Code Playgroud)

哪个会回归:

 "Foo{Id: 1, Name: AName}"
Run Code Online (Sandbox Code Playgroud)
  • 它可以使用System.Reflection.Emit来预编译ToString委托.

还有其他想法吗?

UPDATE

只是为了澄清ToStringBuilder是一个与StringBuilder不同的生物.我正在寻找类似于Apache Common的ToStringBuilder功能的东西,它具有多行格式化,不同样式和反射基础ToString创建等功能.谢谢.

更新2

我已经建立了自己的.看到这里.

c# java reflection tostring apache-commons

16
推荐指数
1
解决办法
2987
查看次数

可以按值的顺序迭代的映射

我需要一个可以按其值的递减顺序迭代的Map .是否有像Apache Commons或Guava这样的标准库提供这种地图?

java collections map apache-commons guava

16
推荐指数
2
解决办法
9291
查看次数

Apache Commons XMLConfiguration - 如何获取给定节点上的对象列表?

我有一个类似于这样的XML配置文件:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<config>
    <mainServerHostname>MainServer</mainServerHostname>
    <failoverServers>
        <server>
            <ipAddress>192.168.0.5</ipAddress>
            <priority>1</priority>
        </server>
        <server>
            <ipAddress>192.168.0.6</ipAddress>
            <priority>2</priority>
        </server>
    </failoverServers>
</config>
Run Code Online (Sandbox Code Playgroud)

现在,我知道通过使用以下代码(在设置我的XMLConfiguration对象并调用它之后):

config.getList("failoverServers.server.ipAddress");
Run Code Online (Sandbox Code Playgroud)

我可以得到所有IP地址的列表.这很方便,但如果我可以做这样的事情会更方便:

config.getList("failoverServers.server");
Run Code Online (Sandbox Code Playgroud)

并获取一个对象列表,每个对象都有一个ipAddress和一个优先级.据我所知,没有办法做到这一点.有没有人对如何实现这种功能有任何想法?我甚至非常愿意定义与Java可以将数据映射到的XML结构相对应的数据结构,如果这会使事情变得更容易(事实上甚至可能更好).谢谢大家的帮助!

java orm apache-commons

16
推荐指数
1
解决办法
1万
查看次数

commons-collections和commons-beanutils中的重复类

Apache的两个Maven工件中有四个重复的类:commons-beanutils:commons-beanutils:1.8.3commons-collections:commons-collections:3.2.1:

org.apache.commons.collections.ArrayStack
org.apache.commons.collections.Buffer
org.apache.commons.collections.BufferUnderflowException
org.apache.commons.collections.FastHashMap
Run Code Online (Sandbox Code Playgroud)

是否可以用其他工件替换其中一个以避免这种重复?我试图谷歌但没有找到任何解决方案.相当恼人的问题.

java apache-commons maven

16
推荐指数
1
解决办法
7534
查看次数

servlet文件上传文件名编码

我使用Apache Commons Fileupload工具进行标准文件上传.我的问题是,如果上传文件包含特殊字符(á,é,ú等),我无法获得正确的文件名.它们都被转换为?迹象.

request.getCharacterEncoding()表示UTF-8,但我在字符串fileItem.getName()中得到的字节对于我所有的特殊字符都是相同的.

你能帮我解决什么问题吗?

(一些细节:在Windows上使用Firefox 3.6.12,Weblogic 10.3)

这是我的代码片段:

 public CommandMsg(HttpServletRequest request) {
    Enumeration names = null;
    if (isMultipart(request)) {
      FileItemFactory factory = new DiskFileItemFactory();
      ServletFileUpload upload = new ServletFileUpload(factory);
      try {
        List uploadedItems = upload.parseRequest(request);
        Iterator i = uploadedItems.iterator();
        FileItem fileItem = null;
        while (i.hasNext()) {
          fileItem = (FileItem) i.next();
          if (fileItem.isFormField()) {
            // System.out.println("isFormField");
            setAttribute(fileItem.getFieldName(), fileItem.getString());
          } else {
            String enc = "utf-8";
            enc = request.getCharacterEncoding();
            String fileName = fileItem.getName();
            byte[] fnb = fileItem.getName().getBytes();
            byte[] fnb2 = null; …
Run Code Online (Sandbox Code Playgroud)

java servlets file-upload character-encoding apache-commons

15
推荐指数
1
解决办法
2万
查看次数

apache commons配置加载属性,直到","字符

我想从属性文件加载配置(apache commons配置).我的计划是:

PropertiesConfiguration pc = new PropertiesConfiguration("my.properties");
System.out.println(pc.getString("myValue"));
Run Code Online (Sandbox Code Playgroud)

my.properties我有

 myValue=value,
Run Code Online (Sandbox Code Playgroud)

用逗号

当我运行程序时,输出是value,而不是value, with comma.看起来值加载到,字符之前.

有任何想法吗?

java apache-config apache-commons

15
推荐指数
3
解决办法
8476
查看次数

转义的html不会转义(现在:未转义的html不会逃脱)

所以我目前正在使用commons lang apache库.

当我尝试取消该字符串时:&#128512; 返回相同的字符串:&#128512;

String characters = "&#128512;"
StringEscapeUtils.unescapeHtml(characters);
Run Code Online (Sandbox Code Playgroud)

输出: &#128512;

但是当我尝试使用少数几个字符来转义字符串时,它可以工作:

String characters = "&#12851;"
StringEscapeUtils.unescapeHtml(characters);
Run Code Online (Sandbox Code Playgroud)

输出:㈳

有任何想法吗?当我尝试"&#128512;"在线unescaping实用程序上取消此String 时,它可以工作,所以也许这是apache常见langs库中的一个错误?或者任何人都可以推荐其他图书

谢谢.

更新:

我现在能够成功地解除String的问题.现在的问题是当我试图逃脱那个unescape的结果时,它不会带回String(?).

html java character-encoding apache-commons

15
推荐指数
1
解决办法
2760
查看次数

prunsrv.exe服务无法启动

我正在尝试使用prunsrv.exe为应用程序安装并启动服务

我能够安装该服务,但服务不会启动,并给我一个错误

在此输入图像描述

以下是用于使用prunsrv.exe安装服务的配置

set SERVICE_NAME=TestService

REM Service log configuration
set PR_LOGPREFIX=%SERVICE_NAME%
set PR_LOGPATH=D:\setups\Commons_Daemon\commons-daemon-1.0.14-bin-windows\logs
set PR_STDOUTPUT=auto
set PR_STDERROR=auto
set PR_LOGLEVEL=INFO

REM Path to java installation
set PR_JVM=C:\Program Files\Java\jre1.6.0_04\bin\client\jvm.dll
set PR_CLASSPATH=D:\setups\Commons_Daemon\commons-daemon-1.0.14-bin-windows\temp.jar;

REM Startup configuration
set PR_STARTUP=auto
set PR_STARTMODE=java
set PR_STARTCLASS=Trys.AppLauncher
set PR_STARTMETHOD=start

REM Shutdown configuration
set PR_STOPMODE=java
set PR_STOPCLASS=Trys.AppLauncher
set PR_STOPMETHOD=stop

REM JVM configuration
set PR_JVMMS=64
set PR_JVMMX=128
set PR_JVMSS=4000

REM Install service
prunsrv.exe //IS//%SERVICE_NAME%
Run Code Online (Sandbox Code Playgroud)

将上述配置打包到批处理文件中以执行安装服务

此外,日志文件不会生成,因为我甚至无法调试.

请告诉我哪里出错了

java apache-commons procrun

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

Apache Commons CLI:替换已弃用的OptionBuilder?

IntelliJ显示在此示例代码中不推荐使用OptionBuilder来自http://commons.apache.org/proper/commons-cli/usage.html.

我应该用什么作为替代品?

import org.apache.commons.cli.*;

Options options = new Options();
options.addOption(OptionBuilder.withLongOpt( "block-size" )
       .withDescription( "use SIZE-byte blocks" )
       .hasArg()
       .withArgName("SIZE")
       .create());
Run Code Online (Sandbox Code Playgroud)

java apache-commons apache-commons-cli

15
推荐指数
1
解决办法
8133
查看次数

如何使用apache通用配置加载多个配置文件(java)

我有一个主要的conf文件,我使用apache通用配置类加载.我有一个要求,用户可以指定一个conf文件,这些文件中的值将覆盖main conf中的值.

请建议我们如何在apache通用配置类或任何其他开源类中实现这一点.

提前致谢

java xml apache-commons apache-commons-config

14
推荐指数
1
解决办法
4464
查看次数