2012-05-28 2 views
0

는 내가의 의미를하지 않는자바에서 연산자와 같은 앰퍼샌드 참조. 의미?

do { 
    if (higherQuality && w > targetWidth) { 
     w /= 2; 
     if (w < targetWidth) { 
      w = targetWidth; 
     } 
    } 

    if (higherQuality && h > targetHeight) { 
     h /= 2; 
     if (h < targetHeight) { 
      h = targetHeight; 
     } 
    } 
    BufferedImage tmp = new BufferedImage(w, h, type); 
    Graphics2D g2 = tmp.createGraphics(); 
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, hint); 
    g2.drawImage(ret, 0, 0, w, h, null); 
    g2.dispose(); 

    ret = tmp; 
} while (w != targetWidth || h != targetHeight); 

이 코드 조각을 발견 이러한 경우 조건

if (higherQuality && w > targetWidth) 

if (higherQuality && h > targetHeight) 

그것은 C의 & 변수 참조 연산자와 유사 나에게. 나는 자바에 익숙하지 않지만 그런 것을 지원하지 않는다는 것을 알고 있으며 표준 비트와 논리적 AND 이외에 자바에서 앰퍼샌드의 다른 의미를 찾아 낼 수 없었다. 모든 설명에 감사드립니다. 감사합니다.

+0

이러한 HTML 엔터티는 의도적입니까? – Ryan

+2

C 참조 변수와 어떻게 닮았는지 모르겠다. (?) 왜 이것은 단지 부울 식을 표현할 수 없는가? 아니면 HTML로 이스케이프 처리하는 것을 Java로 오해하고 있습니까? 어떤 경우에는 단순히 이것을 컴파일하려고 시도하면 거짓말을하게됩니다. –

답변

4

&>HTML character references; 위의 코드가 당신이 발견 한 웹 사이트에 심하게 코드화 된 것처럼 보입니다. 참조 그래서

,이 :

if (higherQuality && w > targetWidth) 

이 표시되어 있어야합니다 : 코드

if (higherQuality && h > targetHeight) 

다음 &&을 읽고

if (higherQuality && w > targetWidth) 
+0

허! 그럴 수 있다고 생각한 것 같습니다. – Smejki

+0

EDIT - HTML 소스 코드를 보았습니다. 그렇습니다. 엉망입니다. 첫 번째 조건에서는'higherQuality && w> targetWidth'이어야합니다. 이 글자들을 몰랐습니다. 감사합니다. – Smejki

0

우연히 누군가 두 번 HTML로 인코딩했습니다. 실제로는 일반 연산자이며 코드는 다음과 같아야합니다.

do { 
    if (higherQuality && w > targetWidth) { 
     w /= 2; 
     if (w < targetWidth) { 
      w = targetWidth; 
     } 
    } 

    if (higherQuality && h > targetHeight) { 
     h /= 2; 
     if (h < targetHeight) { 
      h = targetHeight; 
     } 
    } 
    BufferedImage tmp = new BufferedImage(w, h, type); 
    Graphics2D g2 = tmp.createGraphics(); 
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, hint); 
    g2.drawImage(ret, 0, 0, w, h, null); 
    g2.dispose(); 

    ret = tmp; 
} while (w != targetWidth || h != targetHeight);