2016-08-10 11 views
0

ラムダが参照するクラスと静的メソッド名をプログラムで読み込むことはできますか?例えば:私は何とかg1Testing.method1g2を指していることを読みたいラムダが参照するクラスと静的メソッド名を取得

public class Testing { 

interface Generic { void call(); } 

static public void method1() { 
    System.out.println("In method1"); 
} 

static public void method2() { 
    System.out.println("In method2"); 
} 

public void test() { 
    Generic g1 =() -> Testing.method1(); 
    Generic g2 =() -> Testing.method2(); 

    g1.call(); 
    g2.call(); 

    // System.out.println("g1 -> " + getLambdaReference(g1)) 
} 

Test.method2を指しています。

+3

しかし、 'g1'は" Testing.method1'を指していません "。もしあなたが 'Generic g1 =() - > {Testing.method1(); Testing.method2(); }; '? – Tunaki

+0

確かに、私はこの特定のケースに興味があり、私はそれを理解しようとする直接的または間接的な方法があるのだろうかと思っています。 –

+0

Nope。それは可能ではありません。 – aioobe

答えて

0

このような参照はありません。それらのラムダ関数はちょうどラムダがいくつかのコードを実行しているだけです。これらapproachsが可能であれば

、その後、どのように

Generics g =()->1+2;

またはその他のだけは表情に対処することができますか?

+0

ラムダコードのソースを文字列に取得する方法はありますか? –

+0

それは可能ではありません。 – aioobe

+0

@aioobeどのように? Plz私に例を与えてください。 –

関連する問題