我有一个小小的测验,我自己无法解决。 我想构建一个程序,用java打印自己的源代码。谁知道怎么做? 像这个例子:
public class SourcePrint {
private static final long serialVersionUID = 1L;
public void test(){
System.out.println("Hi I'm test");
}
public static void main(String[] args) {
new SourcePrint().test();
}
}
当我们运行它时,输出将是这样的:
public class SourcePrint {
private static final long serialVersionUID = 1L;
public void test(){
System.out.println("Hi I'm test");
}
public static void main(String[] args) {
new SourcePrint().test();
}
}
我不知道该怎么做。有人知道解决方案或至少提示吗?这不是反编译器,测验制作者告诉我提示是“静态”。
答案 0 :(得分:7)
答案 1 :(得分:3)
这是一个可能在java中使用Quine的例子:
public class Quine {
static String s = "public class Quine { public static void main(String[] args) { char c=34; System.out.println(s+c+s+c+';'+'}'); } static String s=";
public static void main(String[] args) {
char c = 34;
System.out.println(s + c + s + c + ';' + '}');
}
}
当然是看似强制性的维基百科链接:Wikipedia: Quine。根据程序的大小,这里的链接也可能有一些很好的例子:Java Quine
答案 2 :(得分:2)
答案 3 :(得分:1)
import java.io.*;
class Source
{
public static void main(String args[])
{
try{
//open the file
FileInputStream fstream=new FileInputStream("D://Springs WorkSpace/Testing/src/Source.java");//here pass the own java file name with full path
// use DataInputStream to read binary NOT text
// DataInputStream in=new DataInputStream(fstream);
//
BufferedReader br=new BufferedReader(new InputStreamReader(fstream));
//read data line by line from the file
String s;
while((s = br.readLine() ) != null)
{
System.out.println(s);
}
in.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}