2011-01-24 2 views
1

다른 (C#을 스타일) 후 객체 하나에 호출 방법 : 자바, 자바이의 한 형태가 있다면 궁금 해서요

new Object().methodOne("This is the first method").methodTwo("Second attached method"); 
new String("Hello World ").TrimEnd().Split(' '); 

당신을 감사

당신
+3

왜 그냥 시도해 보지 않고 설명서를 한 번 보셔도 될까요? 당신은 놀랄 수 있습니다 ... –

+0

당신은 그것을 시도 했습니까? –

+0

이것을 메소드 체인이라고합니다. –

답변

5

자바에서이 작업을 수행. 메서드의 반환 유형에 따라 다릅니다.

특정 API가 이와 같이 쉽게 사용할 수있는 유형을 반환하지 않을 수 있으므로이 기능을 지원하지 않을 수 있습니다. 그러나 Java는 객체에 변수를 할당하지 않고 객체의 인스턴스 멤버에 액세스하는 것을 가장 확실하게 지원합니다.

나는 당신이 생각할 수있는 것이 fluent interface (물론 자바로 표현 될 수있다)이라는 개념이다.

+0

당신의 오른쪽에는 두 가지 방법이 있습니다 : void setProp1 (string val); void setProp2 (string val). 그래서 API를 사용하고 싶습니다. Object.setProp1 ("one"); Object.setProp2 ("two"); 두 번째 호출은 setProp1의 void 반환시 호출됩니다. 내 배열 초기화 목록을 쉽게 만들고 싶었어. 아 글쎄, 고마워요. –

2

예, 자바에서는 이런 종류의 작업을 수행 할 수 있습니다. 예를 들면 :

class Test { 
    public Test method(int x) { 
     return this; 
    } 
    public Test method2(String y) { 
     return this; 
    } 
} 

그런 다음, 다음을 수행 할 수 있습니다

new Test().method(5).method2("test"); 

당신이 문자열 방법을 함께 fluent interface라고 호출 할 수 인터페이스의이 종류. Martin Fowler (누가이 용어를 사용했는지)는 실제로 Java를 사용하여 시연했습니다.

+0

'public Test method (int x)'가 아니겠습니까? – Femaref

+0

고정, 감사합니다 .. –

관련 문제