2010-07-08 3 views
0

나는 자바 1.5 컴파일러를 가지고 있고 1.4 컴파일러도 갖고 싶지는 않지만 문자열 연결을 제외하고는 1.5 컴파일러를 사용하여 빌드 된 모든 것이 1.4 환경에서 작동하기 때문에 사용해야한다. 유일한 차이는 StringBuilderStringBuffer 사이입니다. 1.5 컴파일러가 1.4 문자열 연결 클래스를 사용하도록 만드는 방법이 있습니까?Java 컴파일러를 사용할 때 문자열 연결에 사용할 클래스를 지정할 수 있습니까?

+1

이 정보는 더 많은 정보를 요구합니다. Java 1.5는 이제 더 이상 사용되지 않습니다. – Riduidel

+0

1.4 버전에서 Javac 1.5를 컴파일하도록 말할 수 없습니까? 아니면 혼란 스럽습니까? –

+0

자바 1.5는 Sun에서 더 이상 사용하지 않을 수도 있지만 BlackBerry에서는 아니며 –

답변

3

정규 문자열 연결 (예 : "A"+ "B")을 ​​사용할 수 있으며 소스를 컴파일하는 동안 javac의 "-target"옵션을 사용하여 .class 파일을 생성해야하는 플랫폼을 나타냅니다.

+0

'-source' 또한'-target'을 허용하지 않을 것입니다. 이전의'rt.jar'을 사용하려면'-bootclasspath'를 사용해야합니다 - 실수로 "새로운"API를 사용할 수도 있기 때문에가 아니라 동일한 소스가 이전 Java 라이브러리에 없었던 오버로드를 사용할 수 있습니다. –

0

코드에서 StringBuffer를 사용할 수 없습니까? 그렇게하면 어느 환경에서도 실행되어야합니다. 특별한 마법은 필요하지 않습니다. StringBuilder는 비동기 버전의 StringBuffer입니다. StringBuilder는 Java 1.5에서만 사용할 수 있으므로 StringBuffer를 피하고 대신 StringBuffer를 사용하는 한 두 환경에서 실행해야합니다.

+0

"A"+ "B"를 사용하지 않는 경우 –

+0

@ 마디 OK 네가 무엇을 요구하는지 이해한다. – JasonStoltz

0

"+"문자열을 사용할 때마다 문자열 연결 클래스를 사용하므로 비효율적 일 수 있습니다. StringBuilder가 더 빠르며 사용할 새 StringBuilder 객체를 만든 후 .append ("text") 메서드를 사용할 수 있습니다. StringBuffer는 동기화를 수행하며 다중 스레드에만 권장되므로 Java 1.5+에서 단일 스레드를 사용하는 것이 실제로 바람직합니다.

StringBuilder를 사용할 수없는 특별한 이유가 있습니까?

1

1.4 컴파일러에게 1.5 컴파일러에게 말하기를 원하는 것처럼 보입니다.

javac -target 1.4

관련 문제