在Java中,我们可以看到os.name知道底层操作系统名称的属性值:System.getProperty("os.name").
对于每个版本的Windows,它总是返回操作系统的确切名称:Windows XPXP,Windows VistaVista,Windows 7Seven,Windows 8.18.1等等......
问题是:我刚刚使用发布的Microsoft更新程序将Windows 8.1更新到Windows 10,看起来这个属性仍然存在Windows 8.1:
public class OSTest {
public static void main(String[] args) {
System.out.println(System.getProperty("os.name"));
}
}
Run Code Online (Sandbox Code Playgroud)
如何为此创建解决方法?而且,有人知道如果安装一个新的Windows 10副本这个问题是否仍然存在 - 也就是说,这个错误是由Microsoft自动更新程序引起的?
我已经检测到一个数字的位数.例如,329586有6数字.
我所做的,只是将数字解析为字符串,并获取字符串长度,如:
number.toString().length()
Run Code Online (Sandbox Code Playgroud)
但是,有一种最快的方法来计算数字上的数字吗?我必须多次使用这种方法,所以我认为使用toString()会影响性能.
谢谢.
在Java 1.8上,您不必定义一个字段,因为final它可以从匿名类中获取.
例如,在旧版本上:
public void foo(final int bar) {
new Runnable() {
public void run() {
System.out.println(bar);
}
};
}
Run Code Online (Sandbox Code Playgroud)
但是,现在,在Java 1.8上,bar不需要是最终的:
public void foo(int bar) {
new Runnable() {
public void run() {
System.out.println(bar);
}
};
}
Run Code Online (Sandbox Code Playgroud)
所以,如果我编译我的项目,并且我正在使用的Java 1.8上实现的唯一资源就是这个(我没有使用任何lambdas,新类等),我的代码是否可以在具有较旧Java版本的计算机上执行?如果没有,为什么?
因此,我有一些带有这些签名的 Java 方法(为了简单起见,删除了注释和代码体):
public class JavaClass {
public static <E extends CharSequence> E join(E... array) { ... }
public static <E extends CharSequence> E join(CharSequence separator, E... array) { ... }
}
Run Code Online (Sandbox Code Playgroud)
我在 Kotlin 中有一些代码,它调用“join”方法:
class KtClass {
fun test(vararg array: String) {
JavaClass.join(*array)
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好; 它将传播可变参数并调用以前的方法签名。好的!
例如,如果我想使用“分隔符”参数调用后一个方法签名,就会出现问题:
class KtClass {
fun test(vararg array: String) {
JavaClass.join("<br>", *array)
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码无法编译。编译器无法决定调用哪个方法。错误:
错误:(5, 13) Kotlin:在未完成类型推断的情况下无法在以下候选者中进行选择:public open fun join(vararg array: String!): String!在 JavaClass 中定义 public open fun join(separator: CharSequence!, vararg array: …
java ×3
final ×1
generics ×1
getproperty ×1
int ×1
java-8 ×1
jvm ×1
kotlin ×1
math ×1
numbers ×1
overloading ×1
string ×1
windows-10 ×1