我可以在Java中嵌套两个输出语句

时间:2013-12-10 04:45:22

标签: java

这可能吗?可能的手段,如何正确地做到这一点? System.out.println(“System.out.println(”“)”);

6 个答案:

答案 0 :(得分:2)

不,你不能。 System.out.println()返回类型无效。

public void println()

写作时

System.out.println("System.out.println("")");

编译器将""内的内容视为String而不是函数。

答案 1 :(得分:1)

System.out.println()没有返回值(void),所以你不能在这里做你想做的事情。 BTW这样做的目的是什么?

再次

System.out.println("System.out.println("")"); // this is not valid statement 

你可以写如下

System.out.println("System.out.println(\"\")");

但是输出只是

System.out.println("")

答案 2 :(得分:1)

如果您只想打印System.out.println(""),请执行此操作

System.out.println("System.out.println(\"\")");

答案 3 :(得分:0)

没有。 System.out.println是一种无效方法。我不确定你为什么要那样做,只需打印一行又一行。

答案 4 :(得分:0)

不可能请查看这些链接以了解“system.out.print()”的工作原理

http://javapapers.com/core-java/system-out-println/

http://www.cis.upenn.edu/~matuszek/General/JavaSyntax/print-statements.html

答案 5 :(得分:0)

这取决于你想要什么。你想达到什么结果?你想付出多少努力? 在嵌套下你是什么意思?答案是:通常不会,但如果你真的想要,是的

class SOP { // SOP stands for system.out.println
   public static SOP p = new SOP();
   public String toString() {return "";}
   SOP p(Object... oo) {for(Object o : oo){System.out.print(o.toString());} return this;}
   SOP pl(Object... oo) {p(oo); return l();}
   SOP l() {System.out.println(); return this;}
}

public class A {
    public static void main(String[] p) {
    SOP.p.p("hello,").pl(" world!");
    SOP.p.p("What exactly do you mean under \"nesting\"?", SOP.p.p("Is this nesting?"));
    SOP.p.l();
    }
}

和输出:

$ javac A.java 
$ java A
hello, world!
Is this nesting?What exactly do you mean under "nesting"?

玩得开心!

PS可能你想写一个打印自己的程序。 在这种情况下:引号中的东西不被评估为Java代码,并且在java中没有办法做到这一点......除非您通过底层操作系统的命令调用编译器,前提是编译器在目标上平台。