为这个愚蠢的问题道歉,但在我学习java课程时,我尝试了以下
javap -c java.lang.System | grep -i out public static final java.io.PrintStream out; javap java.io.PrintStream | grep print public void print(boolean); public void print(char); public void print(int); public void print(long); public void print(float); public void print(double); public void print(char[]); public void print(java.lang.String); public void print(java.lang.Object); public void println(); public void println(boolean); public void println(char); public void println(int); public void println(long); public void println(float); public void println(double); public void println(char[]); public void println(java.lang.String); public void println(java.lang.Object); public java.io.PrintStream printf(java.lang.String, java.lang.Object...); public java.io.PrintStream printf(java.util.Locale, java.lang.String, java.lang.Object...);
我尝试查看是否可以导入<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="c1">
<h2>here<span class="span1">X</span></h2>
</div>
并按原样使用java.io.PrintStream
或print()
,而不是println()
。
System.out.println()
出现了编译错误
Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method print(char) is undefined for the type array at array.main(array.java:16)
为什么导入import java.io.PrintStream;
println('a');
后我不能使用println()
?
答案 0 :(得分:8)
因为println
是PrintStream
类的实例方法,并且您需要一个类的实例来调用实例方法。
但是,System.out
是PrintStream
的一个实例,因此您可以这样做:
System.out.println("blah blah")
或者您可以创建一个新的PrintStream
实例,例如写入文件:
PrintStream p = new PrintStream(filename);
p.println("blah blah");
Java教程中的这一部分可能会有所帮助:Lesson: Classes and Objects
答案 1 :(得分:1)
您需要一个PrintStream实例,因为println不是静态的。
你可以试试这个:
import java.io.PrintStream;
PrintStream printStream = new PrintStream(System.out);
// or better
PrintStream printStream = System.out;
printStream.println('a');
PrintStream需要构造函数的OutputStream,你可以给你想要的OutputStream:
ByteArrayOutputStream, FileOutputStream中, FilterOutputStream中, ObjectOutputStream中, OutputStream的, 的PipedOutputStream
Javadoc: OutputStream PrintStream
答案 2 :(得分:0)
在Java中您总是需要在特定对象上调用方法(函数)。 这就是为什么如果要调用这些方法中的任何一个(print,println),首先需要创建java.io.PrintStream类型的对象。
例如,请尝试以下代码:
import java.io.PrintStream;
...
PrintStream ps = System.out;
ps.print('a');
它创建PrintStream对象,该对象打印到cosole并在那里打印给定的char参数。
答案 3 :(得分:0)
您将不得不实例化PrintStream类,但是它没有默认的无参数构造函数。
因此,这是使用System类中的静态实例并直接调用print()方法的简便方法。