Java에서 여러 변수를 동일한 값으로 초기화
동일한 유형과 동일한 값의 여러 변수를 선언하는 깨끗하고 효율적인 방법을 찾고 있습니다. 지금 나는 가지고 있습니다 :
String one = "", two = "", three = "" etc...
그러나 나는 다음과 같은 것을 찾고있다 :
String one,two,three = ""
이것이 자바에서 가능한 일입니까? 효율성을 염두에 두십시오.
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();
또는 배열이나을 사용하는 것이 좋습니다 Collection
.
여러 변수를 선언하고 여러 변수를 초기화 할 수 있지만 동시에 두 변수를 모두 초기화 할 수는 없습니다.
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();`
세 개의 참조 + 하나의 객체가 생성됩니다. 모든 참조는 동일한 객체를 가리키며 프로그램이 잘못 작동합니다.
당신은 이것을 할 수 있습니다 :
String one, two, three = two = one = "";
그러나 이것들은 모두 같은 인스턴스를 가리킬 것입니다. 최종 변수 또는 기본 유형에 문제가 발생하지 않습니다. 이런 식으로 모든 것을 한 줄로 할 수 있습니다.
나는 그것이 당신이 제공 한 첫 번째 예와 같이 모든 값을 개별적으로 설정해야한다고 생각하지 않습니다.
두 번째 예는 마지막으로 평가할 수있는 항목 만 ""(으)로 초기화하고 나머지는 초기화하지 않습니다.
'Programing' 카테고리의 다른 글
jQuery를 사용하여 요소에`style = display :“block”`을 추가하는 방법은 무엇입니까? (0) | 2020.05.12 |
---|---|
파이썬 팬더에서 dataFrame을 두 개 이상의 열로 정렬하는 방법은 무엇입니까? (0) | 2020.05.12 |
Android Studio를 사용하여 프로젝트를 GitHub에 어떻게 동기화합니까? (0) | 2020.05.12 |
파이썬과 동등한 e.printStackTrace (0) | 2020.05.12 |
Laravel에서 특정 마이그레이션 하나를 롤백 (0) | 2020.05.12 |