你用StringUtils.EMPTY而不是""吗?
我的意思是作为返回值或者如果设置String变量的值.我不是要比较,因为我们使用StringUtils.isEmpty()
我有一个现有的应用程序,它针对log4j进行所有日志记录.我们使用了许多其他库,它们也使用log4j,或者记录Commons Logging,最终使用我们环境中的log4j.我们的一个依赖项甚至记录了slf4j,它也可以正常工作,因为它最终也会委托给log4j.
现在,我想为这个应用程序添加ehcache以满足一些缓存需求.以前版本的ehcache使用了commons-logging,它在这种情况下可以很好地工作,但是从版本1.6-beta1开始,它们已经删除了对commons-logging的依赖,而是用java.util.logging替换它.
不熟悉java.util.logging提供的内置JDK日志记录,是否有一种简单的方法可以将针对log4j发送到JUL的任何日志消息记录下来,因此我可以使用现有配置并设置任何日志记录来来自ehcache?
看看JUL的javadocs,看起来我可以设置一堆环境变量来改变使用的LogManager实现,也许可以用它来将log4j包装Logger在JUL Logger类中.这是正确的方法吗?
具有讽刺意味的是,当世界其他地方(大部分)使用第三方库时,图书馆使用内置JDK日志记录会引起如此头疼.
我在Java中有一个简单的整数到字符串映射,但我需要能够轻松地从整数中检索字符串,并且还能从字符串中检索整数.我已经尝试了Map,但它只能从整数中检索字符串,这是一种方式:
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);
Run Code Online (Sandbox Code Playgroud)
有没有正确的方法来实现这两个方向?
另一个问题是我只有一些不会改变的常数值(1->"low", 2->"mid", 3->"high"因此,找一个复杂的解决方案是不值得的.
我想深入克隆一个List.因为我们有一个方法
// apache commons method. This object should be serializable
SerializationUtils.clone ( object )
Run Code Online (Sandbox Code Playgroud)
所以现在克隆我的列表我应该首先将其转换为可序列化.是否可以将List转换为可序列化列表?
这两个连接池库之间似乎存在很多混淆.我想知道哪一个更好(如果有的话)?
以下是我想提出的一些观点......有人可以验证吗?
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.
这两者之间的唯一区别可以在这篇博客中找到.不知道信息是否正确.
官方Tomcat文档清楚地提到大多数类刚刚被重新命名和重新打包.
所以问题是:哪一个使用哪一个更好?
当我尝试读取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)
Run Code Online (Sandbox Code Playgroud)
Java结果:1
我正在使用Apache Commons CSV库1.1.尝试使用Google搜索错误消息,我唯一得到的是像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 line arguments
*/
public static void main(String[] args) throws FileNotFoundException, IOException
{
Reader in = new InputStreamReader(MockData.class.getClassLoader()
.getResourceAsStream("MOCK_DATA.csv"), "UTF-8");
Iterable<CSVRecord> records = CSVFormat.EXCEL.parse(in);
for (CSVRecord record …Run Code Online (Sandbox Code Playgroud) 给出一个清单
List<String> l = new ArrayList<String>();
l.add("one");
l.add("two");
l.add("three");
Run Code Online (Sandbox Code Playgroud)
我有一个方法
String join(List<String> messages) {
if (messages.isEmpty()) return "";
if (messages.size() == 1) return messages.get(0);
String message = "";
message = StringUtils.join(messages.subList(0, messages.size() -2), ", ");
message = message + (messages.size() > 2 ? ", " : "") + StringUtils.join(messages.subList(messages.size() -2, messages.size()), ", and ");
return message;
}
Run Code Online (Sandbox Code Playgroud)
对于l,产生"一,二,三".我的问题是,是否有一个标准(apache-commons)方法做同样的事情,例如
WhatEverUtils.join(l, ", ", ", and ");
Run Code Online (Sandbox Code Playgroud)
澄清.我的问题是没有让这种方法起作用.它就像我想要的那样工作,经过测试,一切都很好.我的问题是我找不到一些实现这种功能的类似apache-commons的模块.这让我感到惊讶,因为我不能成为第一个需要这个的人.
但是,也许其他人都刚刚完成了
StringUtils.join(l, ", ").replaceAll(lastCommaRegex, ", and");
Run Code Online (Sandbox Code Playgroud) 我对以下内容感兴趣:
是否有一个字符列表永远不会作为base 64编码字符串的一部分出现?
例如*.我不确定这是否会发生.如果原始输入实际上*是其中的一部分,那么编码方式会不同吗?
我想将双引号附加到数组中的字符串,然后将它们作为单个字符串连接(保留引号).有没有这样做的字符串库?我已经尝试过Apache commons StringUtils.join和Google番石榴中的Joiner类,但找不到附加双引号的内容.
我的输入将是一个数组,如下所述:
String [] listOfStrings = {"day", "campaign", "imps", "conversions"};
Run Code Online (Sandbox Code Playgroud)
所需的输出应如下所述:
String output = "\"day\", \"campaign\", \"imps\", \"conversions\"";
Run Code Online (Sandbox Code Playgroud)
我知道我可以遍历数组并附加引号.但是如果有的话,我想要一个更清洁的解决方案.
如何为CLI选项提供类型 - 例如int或Integer?(稍后,如何通过单个函数调用获取解析后的值?)
如何为CLI Option提供默认值?这样CommandLine.getOptionValue()或上面提到的函数调用返回该值,除非在命令行中指定了一个值?