我正在android平台上编写一个服务器客户端.如果其中一个客户端发送其中一个消息,则首先将消息发送到服务器并将服务器发送给客户端.当接收方客户端收到消息时,我必须setContentView这样,我需要打开消息传递屏幕.但它将消息放在不同的线程中,并作为参考传递给我的活动类.
Thread my = new MyThread(this);
Run Code Online (Sandbox Code Playgroud)
并在线程类不能设置内容视图,因为给出一个错误ViewRoot CalledFromWrongThread,我该怎么办?
这听起来很简单,但是我找不到在不使用Java 8+的情况下将String值(可能为null)转换Integer为单行的方法if else.答案可能涉及ofNullable和的使用isPresent.
我试过的一些事情:
String x = ...;
Integer.valueOf(x); // fails if x is null
Optional.ofNullable(Integer.valueOf(x)).orElse(null); // NullPointerException
Run Code Online (Sandbox Code Playgroud) 是否有一种优雅的方式来比较两个Strings并检查它们是否不同?例如Java,我通常使用类似于此的东西:
if (text1 != text2 || (text1 != null && !text1.equals(text2))) {
// Texts are different
}
Run Code Online (Sandbox Code Playgroud)
这是非常普遍的事情,我想知道可能有更好的方法.
编辑: 理想情况下,我想要一个适用于大多数常见面向对象语言的伪代码.