불행히도 저는 약 5 년 동안 Java 코드를 작성하지 않았으며 다음 코드가 어떻게 또는 왜 작동 하는지를 기억하지 못합니다.이중 중괄호와 함께이 생성자 호출은 무엇입니까?
나는 비슷한 예를 우연히 만났고, 이것을 깨뜨렸다. 강조 부분은 주석 아래 부분에 있습니다. 이중 대괄호 안에 블록이 오는 생성자 표기법을 얻지 못합니다. 그리고 불행히도 Java 설명서 나 Google을 사용하여 찾을 수 없습니다 (어떤 단어를 Google에 사용해야합니까?). 이 표기법/구문은 어떻게
- 라고 :
package syntaxtest; public class Main { public static void main(String[] args) { // What kind of notation is this? MyTest tester = new MyTest() {{ setName("John Johnson"); }}; System.out.println(tester.getName()); } } class MyTest { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
그래서 여기 내 질문입니까?
- 어디에서 설명서를 읽을 수 있습니까?
누군가가 첫 번째 질문에 대한 답을 나에게 제공 할 수 있다면 나 자신이 두 번째 질문에 답할 수 있기를 바랍니다.
분명히 말하면 : 출력이 John Johnson
인 것을 알고 있습니다.)하지만 왜 작동하는지 알 수 없습니다.
과 동일합니다. 그것이 무엇인지 알게되면 그것은 분명합니다. –
나는이 깔끔한 속임수를 얼마 전에 보았다. 그러나 나는 또한 그걸로 물건을 부수기가 쉽다거나 매우 신뢰할만한 것이 아니라는 몇 가지 면책 조항을 보았다. 만약 내가 그것을 사용하려고한다면, 나는 A) 그 코드를 모든 사람에게 설명해야만한다고 설명 할 것이다. 그리고 B) 그 다음에 연구를해야한다. 이 패턴을 사용함에 따른 모든 함의를 이해하십시오. –
빠르고 도움이되는 답장을 보내 주셔서 감사합니다. – klekker