我有文件路径列表:.
List<Path> filePaths; //e.g. [src\test\resources\file\15\54\54_exampleFile.pdf]
Run Code Online (Sandbox Code Playgroud)
54 以上是指文件ID
然后,我获得了一个我的应用程序可以处理Set的StringID,如下所示:
Set<String> acceptedIds = connection.getAcceptedIDs(); //e.g. elements [64, 101, 33]
Run Code Online (Sandbox Code Playgroud)
如何使用Java 8 lambdas来filter排除filePaths其中不包含acceptedIds集合Set中包含的任何可接受的ID的所有元素.
换句话说,我只想保留filePaths具有acceptedIdsset中的id的路径.例如,54不在上面的列表中,因此被删除.
filePaths.stream().filter(...).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud) 我需要将 String 中的以下日期格式解析为 Java LocalDateTime。
所以我把日期作为字符串是这样的: 2019-09-20T12:36:39.359
我有以下单元测试:
@Test
public void testDateTime() {
assertEquals(SomeObject.getLocalDate(), LocalDateTime.parse(“2019-09-20T12:36:39.359”, DateTimeFormatter.ofPattern("yyyy-MM-ddThh:mm:ss.SSS")));
}
Run Code Online (Sandbox Code Playgroud)
单元测试失败,但有异常:
java.lang.IllegalArgumentException: Unknown pattern letter: T
at java.time.format.DateTimeFormatterBuilder.parsePattern(DateTimeFormatterBuilder.java:1661)
at java.time.format.DateTimeFormatterBuilder.appendPattern(DateTimeFormatterBuilder.java:1570)
at java.time.format.DateTimeFormatter.ofPattern(DateTimeFormatter.java:536)
Run Code Online (Sandbox Code Playgroud)
如何正确解析这种格式的日期LocalDateTime?
<bean id="MyDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
<bean id="template" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg value="MyDataSource"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
在类路径资源[application-context.xml]中定义名称为"template"的bean时出错:无法解析匹配的构造函数(提示:为简单参数指定索引/类型/名称参数以避免类型歧义)
我不确定我在这里做错了以获得上述错误?使用正确的变量名称正确地在属性文件中定义所有内容.有什么需要检查的?
public static String getLastWorkingDayOfPreviousMonth() {
LocalDate lastDayOfCurrentMonth = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth());
LocalDate lastWorkingDayOfMonth;
switch (DayOfWeek.of(lastDayOfCurrentMonth.get(ChronoField.DAY_OF_WEEK))) {
case SATURDAY:
lastWorkingDayOfMonth = lastDayOfCurrentMonth.minusMonths(1);
break;
case SUNDAY:
lastWorkingDayOfMonth = lastDayOfCurrentMonth.minusMonths(2);
break;
default:
lastWorkingDayOfMonth = lastDayOfCurrentMonth;
}
return getFormattedDate(lastWorkingDayOfMonth);
}
Run Code Online (Sandbox Code Playgroud)
以上是本月的最后一个工作日.如何Previous调整上述工作日的最后一个工作日?
我有许多线程处理Trade对象,我使用 aRowMapper将数据库列映射到Trade对象。
我知道SimpleDateFormat在任何 Java 中都不是线程安全的。结果,我在startDate. 例如,我看到日期endDate也在startDate.
这是我的代码:
public class ExampleTradeMapper {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd-MMM-yyyy");
public void map(Trade trade, ResultSet rs, int rowNum) throws SQLException {
trade.setStartDate(getFormattedDate(rs.getDate("START_DATE")));
trade.setEndDate(getFormattedDate(rs.getDate("END_DATE")));
trade.setDescription(rs.getString("DESCRIPTION"));
}
private String getFormattedDate(Date date) {
try {
if (date != null)
return DATE_FORMAT.format(date).toUpperCase();
else
return null;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
public class SomeRowMapper extends TradeMapper …Run Code Online (Sandbox Code Playgroud) public class SomeAdaptor implements SomeListener {
public ConcurrentHashMap<String, Double> pendingRFQ;
@Override
public void run() {
pendingRFQ.put(response.getId(), price);
} //first run method
@Override
public void run() {
Double price = pendingRFQ.get(quoteEvent.getId());
if (price != null)
System.out.println("ORDER TO Market.....");
} //2nd run method
Run Code Online (Sandbox Code Playgroud)
我有一些线程问题.pendingRFQ当我尝试在第二种run()方法中提取价格时,地图不是最新的.我可以在第二种run()方法中执行哪些技术来确保我正在查找的值?或者我怎么能让它等到它进来?
java ×6
date ×2
localdate ×2
asynchronous ×1
java-8 ×1
java-stream ×1
java-time ×1
lambda ×1
spring ×1
spring-mvc ×1
xml ×1