현재 버전

자바 옵셔널 map 메소드참조

자바 메소드 참조 질문


코드 전체를 올리지 못한점 죄송합니다


class Frined{

....

Company cmp;

...

public Company getCmp(){return cmp;}

}

class Company{  ...}


class What{

public static void showCompAddr(Optional<Friend>f){

String addr=f.map(Friend::getCmp)....

}

회색으로 칠해진 코드가 이해가 안가는데요

처음에 보고 메소드 참조를 하고있구나 했습니다

Friend 클래스로 가서 메소드를 보니  static 함수가 아닌걸 알게 됬고 의문이 생겼습니다

객체 전달없이 메소드 참조를 할려면  다음과 같은 람다식

(a,b)->a.bigger(b); 두인자를 전달하고 하나의 인자의 메소드에 다른하나의 인자가 전달되는 형태

와 같은 람다식이여야 하는데  


getCmp는 조건을 만족하지 않는데  이런 표현이 가능한가요???


가능하다면 이유를 알고 싶습니다


수정 이력

2018-01-14 23:09:22 에 아래 내용에서 변경 됨 #1

코드 전체를 올리지 못한점 죄송합니다


class Frined{

....

Company cmp;

...

public Company getCmp(){return cmp;}

}

class Company{  ...}


class What{

public static void showCompAddr(Optional<Friend>f){

String addr=f.map(Friend::getCmp)....

}

회색으로 칠해진 코드가 이해가 안가는데요

처음에 보고 메소드 참조를 하고있구나 했습니다

Friend 클래스로 가서 메소드를 보니  static 함수가 아닌걸 알게 됬고 의문이 생겼습니다

객체 전달없이 메소드 참조를 할려면  다음과 같은 람다식

(a,b)->a.bigger(b); 두인자를 전달하고 하나의 인자의 메소드에 다른하나의 인자가 전달되는 형태

와 같은 람다식이여야 하는데  


getCmp는 조건을 만족하지 않는데  이런 표현이 가능한가요???