Java 在字符串实例上调用格式
在花了很长时间使用scala之后,我一直在研究Java8。在我进行黑客攻击时,被困在scala模式中,我编写了类似于Java 在字符串实例上调用格式,java,Java,在花了很长时间使用scala之后,我一直在研究Java8。在我进行黑客攻击时,被困在scala模式中,我编写了类似于“#实例_方法:%s线程:%d”的东西;“。奇怪的编译器没有抱怨,尽管我在字符串文档中找不到名为“format”的实例方法(原来我没有意识到静态方法的文档与此相关)。因此,下面的代码: public class Weird{ public static void main(String[] args){ String testStr = "hmm";
“#实例_方法:%s线程:%d”的东西;“
。奇怪的编译器没有抱怨,尽管我在字符串文档中找不到名为“format”的实例方法(原来我没有意识到静态方法的文档与此相关)。因此,下面的代码:
public class Weird{
public static void main(String[] args){
String testStr = "hmm";
Long testNum = 7L;
String weird = "# instance_method:%s thread:%d".format(testStr, testNum);
String msg = String.format("# static:%s thread:%d", testStr, testNum);
System.err.println(weird);
System.err.println(msg);
}
}
给出的输出:
hmm
# static:hmm thread:7
因此,
“#实例_方法:%s线程:%d”。format(testStr,testNum)
的计算结果为testStr
。我可能做了一些愚蠢的事情,但这里发生了什么?您在下面的表达式中调用了static
format
方法
"# instance_method:%s thread:%d".format(testStr, testNum);
i、 e.使用参数设置testStr
的格式。由于中没有占位符,“hmm”
这只是计算为“hmm”
使用实例调用
静态
方法在java中是有效的,但应该避免,因为这很容易导致混淆。表达式的类型用于确定在这种情况下调用的方法。您在下面的表达式中调用的是静态
格式
方法
"# instance_method:%s thread:%d".format(testStr, testNum);
i、 e.使用参数设置testStr
的格式。由于中没有占位符,“hmm”
这只是计算为“hmm”
使用实例调用
静态
方法在java中是有效的,但应该避免,因为它很容易导致混淆。表达式的类型用于确定在这种情况下调用的方法。是的,很难找到:。无论是在实例上还是在类本身上调用静态方法(第一个是未链接的/a代码味道)。实例方法在哪里?公共静态字符串格式(字符串格式,对象…args)@sgldiv没有实例方法。但是Java允许您在实例上调用static
方法。是的,很难找到:。无论您是在实例上调用静态方法还是在类本身上调用静态方法(第一个方法是未链接的/a code-smose),实例方法在哪里?公共静态字符串格式(字符串格式,Object…args)@sgldiv没有实例方法。但是Java允许您在实例上调用静态方法。