2013-08-06 2 views
3

AS3에서 JAVA로 전환 할 때 내가 놓친 몇 가지 사소한 점을 발견했습니다. 그 중 하나는 구체적으로 with 키워드입니다. JAVA (6 이하)에서 이와 유사한 것이 있습니까?JAVA에 ActionScript 3의 "with"키워드가 있습니까?

것은 나는 개체의 제한 값을 구문 분석하고 오히려 같은 것을 작성합니다

/** Example in AS3 **/ 
function FancyParsingContructorInAS3(values:Object):void { 
    with (values) { 
     this.x = x; // functionally equivalent to `this.x = values.x;` 
     this.y = y; 
     this.width = width; 
     this.height = height; 
    } 
} 
+5

IMO는 코드를 읽기 어려운 상태로 만들 때 이러한 "정교함"에서 벗어나야합니다. –

+2

과 훨씬 더 느리게! – chadiik

답변

2

with 문이 사용 사례에이 것입니다.

1) 자바에서이 어디에도없는 특정 상황

public class App { 

    public void stuff() { 
     //this refers to the current instance of App 
     final Object obj = new Object(); 
     with(obj) { 
     //this refers to obj 
     } 
    } 
} 

this의 값을 변경합니다. 메서드 코드를 Object에 넣으면됩니다.

2) 다른 class에서 메소드를 가져 와서 규정되지 않은 상태로 사용할 수 있습니다.

public static void main(String[] args) throws Exception { 
    System.out.println(Math.max(Math.PI, 3)); 
} 

import static와 함께 자바에서 변경 될 수 있습니다. 이로 인해 다른 classstatic 구성원을 현재 class으로 가져올 수 있습니다. 다음과 같은 세 가지 import 문을 추가 :

import static java.lang.System.out; 
import static java.lang.Math.max; 
import static java.lang.Math.PI; 

가 대신

public static void main(String[] args) throws Exception { 
    out.println(max(PI, 3)); 
} 

당신은 즉 볼 수 있습니다 작성할 수시겠습니까 것은 그러나 코드가 다소 덜 읽을 수 있습니다. out, maxPI의 출처는 특히 명확하지 않습니다.

+0

와우, 그건 끔찍하지만 매력적이야! –

관련 문제