2016-08-10 2 views
0

람다가 참조하는 클래스 및 정적 메서드 이름을 프로그래밍 방식으로 읽을 수 있습니까? 예를 들어 :람다가 참조하는 클래스 및 정적 메서드 이름 얻기

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)) 
} 

어떻게 든 그 g1Testing.method1 가리키는 및 g2Test.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 예를 들어주세요. –

관련 문제