2012-02-08 5 views
2

オブジェクト変数にコードを追加して後で実行できるかどうかは疑問ですが、
私はこのような何かをしたい:Javaで変数にコードを追加する

MyClass c = new MyClass(); 
c.addCode(
    //Add my code here 
); 
c.runCode(); 

答えて

0

あなたはあなたのクラス内のメソッドでそのコードを定義し、neccessaryされるたびにそれを呼び出す必要があります。あなたがタスクを実行したいc.runCode();

+0

まあvaribleを持つことのポイントは – user1198255

+0

alltogetherクラスを取り除くことである。しかし、変数を宣言するためにクラスがすでに存在している必要があります。あなたはこれを何のために使いたいですか? – Brian

+0

ブライアンは言ったように、 'MyClass'がなくても' c'をインスタンス化することはできません。 「MyClass」を取り除くためのあなたの動機は何ですか?実行時にコードを書くようなことをしようとしていますか? – ggrigery

1

:たとえば:として

public class MyClass{ 
    public MyClass(){ ... } 

    public void runCode(){ 
     // Your code goes here 
    } 

} 

次に、あなたのコードにアクセスすることができます。

Java 1.5以上を使用する場合は、java.util.concurrentパッケージをご覧ください。

ExecutorServiceやRunnableなどのインターフェイスが役立つことがあります。

あなたの変数の型がQueue<Runnable>、のような、ある、または内部で持っている場合は、ExecutorService.executeているあなたの「RUNCODE」機能()

0

で私が意味する、あなたが望むものを達成するために、このようなRunnableのクラスのインスタンスを作成しますa Queue<Runnable>です。新しいRunnableをキューに追加するだけです。

0

あなたの質問に正しく疑問がある場合は、実行中にプログラムのソースを動的に編集するように見えますか?厳密には不可能ではありませんが、そうすることは非常に危険です。

これを回避するには、制御構造を安全かつ適切に使用する必要があります。

//i want to add code to program 
methodWithCode(); 

void methodWithCode(){ 
    // code here 
} 

や条件文の内側:

はちょうどあなたがメソッドの内部で「追加」したいコードを置きます。

if(i_want_to_add_code){ 
    // code here 
} 
関連する問題