我的 Websphere Liberty 安装/IBM Bluemix 实例遇到问题。我正在使用新的 java.time 类(例如 LocalDateTime),但使用 Jackson 2.8 映射器的反序列化版本会导致难以处理的结果(完整对象反序列化而不是时间戳)。 https://geowarin.github.io/jsr310-dates-with-jackson.html 但是我怎样才能在 Liberty 中做同样的事情呢?例如:接收 2016-02-02T23:24:08.255+01:00 作为反序列化 JSON 响应的结果
谢谢
我使用 kotlin 在 Intellij Idea 中实现了一个项目。这是没有错误的工作。这是我的 Intellij 项目照片,没有错误
但是当我在 Android Studio 中实现这个项目时,我得到了错误,因为工作室在 BigInteger 类中找不到这个方法
longValueExact()
Android Studio 项目照片:
我的计算机中有一个 JDK (v 1.8) 。但在 Itellij 项目中此方法有效,而在 android studio 中无效。
我在android studio中打开java.math.BigInteger类并看到longValueExact()方法:
open class AuthKey(val key: ByteArray) {
constructor(key: ByteBuffer) : this(key.array())
init {
if (key.size != 256)
throw RuntimeException("AuthKey must be 256 Bytes found ${key.size} bytes")
}
// see https://core.telegram.org/mtproto/description#key-identifier
// SHA1 generates 20 bytes long hash, authKeyId is the lower 8 bytes
val keyId = CryptoUtils.substring(CryptoUtils.SHA1(key), 12, 8)
fun …Run Code Online (Sandbox Code Playgroud) 下面的 Stream 表达式工作得很好:
Stream<String> s = Stream.of("yellow","blue", "white");
s.sorted(Comparator.reverseOrder())
.forEach(System.out::print);` //yellowwhiteblue
Run Code Online (Sandbox Code Playgroud)
为什么带有方法引用的等效方法无法编译?
s.sorted(Comparator::reverseOrder).forEach(System.out::print);
Run Code Online (Sandbox Code Playgroud)
Comparator 类型没有定义适用于此处的reverseOrder(String, String)
我有以下代码:
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(
this.start.toLocalDateTime(), ZoneOffset.UTC,
ZoneOffset.systemDefault());
Run Code Online (Sandbox Code Playgroud)
this.start 来自 java.sql.Timestamp。我在这里明确地从 UTC 转换为系统的本地偏移量,这是否足够聪明以考虑夏令时?
我创建了一个 aws Lambda 函数,它将 hello world 打印到控制台
使用类所在的包名称和要调用的方法名称配置 lambda,并将 jar 文件上传到 aws lambda 函数。
当我执行 lambda 时,出现异常,提示找不到类。
消息为
{
"errorMessage": "Class not found: com.coreservice.lambda.Handler",
"errorType": "class java.lang.ClassNotFoundException"
}
Run Code Online (Sandbox Code Playgroud)
无法理解为什么 aws 无法在 jar 中找到类。
以下详细信息是项目配置
public class Handler implements RequestHandler<SNSEvent, Object> {
@Override
public Object handleRequest(final SNSEvent input, final Context context) {
if (Objects.nonNull(input) && !CollectionUtils.isNullOrEmpty(input.getRecords())) {
context.getLogger().log("Hello World");
context.getLogger().log("queue = "+ SQS_URL);
}
return StringUtils.EMPTY;
}
}
Run Code Online (Sandbox Code Playgroud)
项目pom:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.coreservice</groupId>
<artifactId>SNS-SQS-Filter-Lambda</artifactId>
<packaging>jar</packaging>
<version>136.0.0-SNAPSHOT</version>
<name>SNS-SQS-Filter-Lambda</name>
<dependencies> …Run Code Online (Sandbox Code Playgroud) 我正在使用 Files.lines() 从大文件(8GB+)读取行。如果按顺序处理,它会很好地工作,并且内存占用非常低。一旦我将parallel()添加到流中,它似乎就会永远挂在它正在处理的数据上,最终导致内存不足异常。我相信这是 Spliterator 在尝试拆分时缓存数据的结果,但我不确定。我剩下的唯一想法是编写一个带有 trySplit 方法的自定义 Spliterator,该方法剥离少量数据进行拆分,而不是尝试将文件拆分为一半或更多。有人遇到过这种情况么?
我有一张具有以下结构的地图:
Map<String, Map<String, String>> input;
Run Code Online (Sandbox Code Playgroud)
它基本上包含一组 ID,并且对于每个 ID,包含一个与属性关联的值。
For ex:
ID: Attribute Value
A X 100
A Y 200
B X 40
B Y 40
Run Code Online (Sandbox Code Playgroud)
我只对每个 ID 的属性 X 感兴趣,我想做一些处理并将其存储为一个具有相同定义的新地图 Map>
我正在 Java 8 中尝试:
Map<String, Map<String, String>> getResults(Map<String, Map<String, String>> input) {
input.entrySet().stream()
.map(id -> {
String valueX = id.getValue().get("X");
String computeX = compute(valueX);
// Now start adding these results to the new map.
} )
}
Run Code Online (Sandbox Code Playgroud)
我无法理解如何将其添加到新地图中。
我正在将日期/日期时间字符串转换为OffsetDateTime并且我有日期时间格式,它可能具有这些值之一
yyyy-MM-dd, yyyy/MM/dd
Run Code Online (Sandbox Code Playgroud)
有时有或没有时间,我需要将其转换为OffsetDateTime.
我试过下面的代码
// for format yyyy-MM-dd
DateTimeFormatter DATE_FORMAT = new DateTimeFormatterBuilder().appendPattern("yyyy-MM-dd")
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
.parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
.parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
.parseDefaulting(ChronoField.MILLI_OF_SECOND, 0)
.toFormatter();
Run Code Online (Sandbox Code Playgroud)
由于没有时间,我将其设置为默认值,但是当我尝试解析时
OffsetDateTime.parse("2016-06-06", DATE_FORMAT)
Run Code Online (Sandbox Code Playgroud)
它抛出错误就像
线程“main”中的异常 java.time.format.DateTimeParseException:无法解析文本“2016-06-06”:无法从 TemporalAccessor 获取 OffsetDateTime:{},ISO 解析为 java 类型的 2016-06-06T00:00 .time.format.Parsed 已解析
谁能帮我解决这个问题吗?
鉴于两者java.time.Clock.systemDefaultZone().getZone()都java.util.TimeZone.getDefault().toZoneId()返回相同的输出,两者之间有什么区别吗?
例如这段代码
import java.time.Clock;
import java.util.TimeZone;
public class Main {
public static void main(String[] args) {
System.out.println("Clock.systemDefaultZone().getZone() : "
+ Clock.systemDefaultZone().getZone());
System.out.println("TimeZone.getDefault().toZoneId() : "
+ TimeZone.getDefault().toZoneId());
}
}
Run Code Online (Sandbox Code Playgroud)
返回此输出
Clock.systemDefaultZone().getZone() : Europe/Paris
TimeZone.getDefault().toZoneId() : Europe/Paris
Run Code Online (Sandbox Code Playgroud) 我只是在使用streams时使用groupingBy。我无法根据水果的名称对水果进行排序,我还想根据水果的名称进行排序 for (// 1.1== >按列表分组并显示其总数)Java8
public class StreamCollectorsGroupingByDemo {
public static void main(String[] args) {
List<String> items = Arrays.asList("apple", "apple", "banana", "apple", "orange", "banana", "papaya");
// 1.1== >Group by a List and display the total count of it
Map<String, Long> result = items.stream()
.sorted()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println("RESULT : "+result);
// 1.2 Add sorting
Map<String, Long> finalMap = new LinkedHashMap<>();
result.entrySet().stream()
.sorted(Map.Entry.<String, Long> comparingByValue()
.reversed())
.forEachOrdered(e -> finalMap.put(e.getKey(), e.getValue()));
System.out.println("FINAL RESULT : "+finalMap);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
RESULT …Run Code Online (Sandbox Code Playgroud) java-8 ×10
java ×4
java-stream ×3
java-time ×2
aws-lambda ×1
comparator ×1
hashmap ×1
ibm-cloud ×1
maven ×1
maven-plugin ×1
timezone ×1