programing

Java에서 여러 변수를 동일한 값으로 초기화

yoursource 2022. 10. 3. 22:26
반응형

Java에서 여러 변수를 동일한 값으로 초기화

동일한 유형 및 값의 여러 변수를 선언하는 깨끗하고 효율적인 방법을 찾고 있습니다.현재 저는 다음을 가지고 있습니다.

String one = "", two = "", three = "" etc...

하지만 저는 다음과 같은 것을 찾고 있습니다.

String one,two,three = ""

Java로 할 수 있는 건가요?효율성을 염두에 두고 있습니다.

String one, two, three;
one = two = three = "";

이것은 불변의 오브젝트와 함께 동작합니다.예를 들어 다음과 같은 가변 객체는 의미가 없습니다.

Person firstPerson, secondPerson, thirdPerson;
firstPerson = secondPerson = thirdPerson = new Person();

모든 변수가 동일한 인스턴스를 가리킵니다.이 경우 필요한 것은 다음과 같습니다.

Person firstPerson = new Person();
Person secondPerson = new Person();
Person thirdPerson = new Person();

또는 어레이 또는 를 사용하는 것이 좋습니다.

여러 변수를 선언하고 여러 변수를 초기화할 수 있지만 두 변수를 동시에 초기화할 수는 없습니다.

 String one,two,three;
 one = two = three = "";

그러나 대부분의 Java 개발자는 이러한 종류의 작업(특히 여러 개의 작업)을 "시각적으로 단순"과 반대되는 것으로 간주합니다.

아니요, 자바에서는 불가능합니다.

이렇게 하면 됩니다.하지만 피하도록 노력하세요.

String one, two, three;
one = two = three = "";

다음과 같은 기본 및 불변의 클래스에 대해 작동합니다.String, 래퍼 클래스 문자, 바이트.

int i=0,j=2   
String s1,s2  
s1 = s2 = "java rocks"

가변 클래스의 경우

Reference r1 = Reference r2 = Reference r3 = new Object();`  

참조가 3개 + 오브젝트가 1개 생성됩니다.모든 참조가 같은 오브젝트를 가리키고 있어 프로그램이 잘못 동작합니다.

다음과 같이 할 수 있습니다.

String one, two, three = two = one = "";

하지만 이것들은 모두 같은 경우를 가리키게 될 것이다.최종 변수나 원시 유형에 문제가 발생하지 않습니다.이렇게 하면 모든 것을 한 줄로 할 수 있습니다.

모든 값을 개별적으로 설정할 필요는 없다고 생각합니다(처음 제시했던 예시와 같습니다).

두 번째 예에서는 ""에게 귀중한 마지막 변수만 초기화됩니다.다른 변수는 초기화되지 않습니다.

편집: Zeeen이 지적한 바와 같이 Java에서는 작동하지 않습니다.제가 대답하려고 했던 질문은 그루비에서도 나왔는데, 이 질문은 잘못 제출되었습니다.


너무 늦었지만 가장 간단한 방법은 다음과 같습니다.

String foo = bar = baz = "hello"
println(foo)
println(bar)
println(baz)

출력:

hello
hello
hello

언급URL : https://stackoverflow.com/questions/6202818/initializing-multiple-variables-to-the-same-value-in-java

반응형