6

自分では解けないちょっとしたクイズがあります。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();
    }

}

これを行う方法がわかりません。誰かが解決策または少なくともヒントを知っていますか? これは逆コンパイラではなく、クイズ作成者がヒントは「STATIC」だと教えてくれました。

4

4 に答える 4

6

http://en.wikipedia.org/wiki/Quine_%28computing%29

于 2012-06-26T04:09:32.807 に答える
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 + ';' + '}');
    }
}

そしてもちろん、ウィキペディアへの一見必須のリンク:ウィキペディア:クワイン。プログラムの大きさに応じて、このリンクにはいくつかの良い例があります:Java Quine

于 2012-06-26T04:17:00.827 に答える
3
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();  
        }  
    }  
}  
于 2013-11-20T07:37:15.407 に答える
2

簡単なグーグル検索で次のリンクが見つかりました:

http://en.wikipedia.org/wiki/Quine_%28computing%29

あなたが探しているプログラムのタイプは、一般に quine と呼ばれます。

于 2012-06-26T04:07:39.770 に答える