Why can't I use the print() or println() method in java.io.PrintStream as it is after importing the class?
对这个愚蠢的问题表示歉意,但当我学习Java类时,我尝试了以下几点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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...); |
我试着看看我能不能进口
1 2 | import java.io.PrintStream; println('a'); |
号
结果它出现了一个编译错误
1 2 3 |
为什么我不能像进口
因为
但是,
1 |
或者您可以创建一个新的
1 2 |
号
Java教程中的这一部分可以帮助:上课:类和对象
您需要一个printstream实例,因为println不是静态的。
您可以尝试以下操作:
1 2 3 4 5 | import java.io.PrintStream; PrintStream printStream = new PrintStream(System.out); // or better PrintStream printStream = System.out; printStream.println('a'); |
。
printstream需要一个outputstream作为构造函数,您可以提供所需的outputstream:
通过EarrayOutputstream,文件输出流,过滤器输出流,对象输出流,输出流,管道输出流
贾瓦多:输出流打印流
您必须实例化printstream类,但它没有默认的no arg构造函数。因此,从系统类使用其静态实例并直接调用print()方法是一种简单的方法。
在Java中,总是需要在特定对象上调用方法(函数)。这就是为什么如果要调用这些方法(print、println)中的任何一个,则需要首先创建java.io.printstream类型的对象。
例如,尝试以下代码:
1 2 3 4 |
它创建打印到cosole的printstream对象,并在那里打印给定的char参数。