2009-11-08 3 views
18

과 같이 할 수 있습니다 설치 속성 : 고객 ID라는 자동 속성을 설정하지만, 자바에서 아무것도 비슷한이 있다면 궁금 해서요Java에 자동 등록 정보가 있습니까? C#에서

public int CustomerId {get;set;} 

?

+0

Java는 "저수준 고수준"언어로 설명합니다. 그것은 메모리 관리, 객체 지향 등의 고수준 언어입니다. 그러나 컴파일러에 의해 "여분"이 거의 구현되지 않는다는 점에서 저수준입니다. 속성과 같은 가장 단순한 패턴조차도 프로그래머가 수동으로 수행해야합니다 (예외가있을 것입니다). (아마도 "순수한"OOP 언어일까요?) 이것은 좋은 일이고 나쁜 일입니다. 지나치게 복잡하지 않으면 서 OOP 기본을 가르 칠 것이기 때문에 Java를 제 1 언어로 제안하는 이유 중 하나입니다. –

답변

26

아니요, Java는 현재로서는 아무 것도 없습니다. Heck, Java의 속성은 C#에있는 것처럼 컴파일러가 진정으로 이해하는 것보다는 get/set 메서드를 사용하는 것이 일반적입니다. 도구와 라이브러리는 get/set 패턴을 인식하지만 언어는 그 패턴을 알지 못합니다. (Java의 차기 버전에서는보다 "공식적인"지원이 가능할 수도 있습니다.)

Groovy과 같은 Java와 유사한 언어는 자동으로 속성을 생성하지만,

+0

C#은 "자바와 비슷한"언어입니다. –

+9

@Tom : 몇 가지면에서 그렇습니다. 그래도 관련이 있다고 확신 할 수는 없지만 ... 내가 쓴 것을 분명히 무효화하지는 않습니다. –

+0

@ 존 키 스케 (John Skeet) : "진정으로 이해되는"것이 무엇을 의미하는지 명확히 할 수 있습니까? 나는 C# 물건이 같은 종류의 것, 즉 읽기/쓰기를위한 몇 가지 함수가있는 필드에 대한 구문 론적 설탕이라고 생각했다. – Carlos

12

아니요, Java에는 그런 것이 없습니다.

그러나 Eclipse에서는 소스> Getter/Setters 생성을 사용하여 필드에 대한 getter/setter 메소드를 자동으로 구현할 수 있습니다.

6

하지에서 주석을 사용하여 쉽게이 작업을 수행 할 수 있습니다. 그러나이를 제공하는 라이브러리가 적어도 하나 있습니다. 참조 : http://projectlombok.org/ (이상의 특정을 : http://projectlombok.org/features/GetterSetter.html를)

+0

좋아요. '@ cleanup'과 같은 몇 가지 다른 주석 (.net devs의 속성)이 있습니다. @ toString''NullNull' ... –

관련 문제