자바에 익숙하지 않으므로이 말도 안되는 간단한 질문인데도 불구하고 {code}를 가져 오는이 메소드 호출에 대해 궁금합니다. addSelectionListener 메서드의 예제는 아래 코드를 참조하십시오. 이것의 목적은 무엇입니까? 나는 explaination에 대한 워드 프로세서를 찾고 있지만이 연습이 유용한 정보를 전혀 신경 쓰지 않는 것을 발견하는 것 같습니다. 이것이 Anonymous Class, 또는 익명 내부 클래스Java 구조는 무엇을합니까?
답변
제공 할 수있는 모든 도움이나 통찰력
setStatusLine.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
String message = "I would like to say hello to you.";
if (pressed) {
message = "Thank you for using me";
}
setStatusLine(message);
pressed = !pressed;
}
});
감사합니다. 당신이 google에 대한 약간의 tutorials/예제를 찾을 수 있습니다. 일 has some docs 너무.
도움을 주신 분들께 감사드립니다. 많은 감사를드립니다. – BandyOrc
사실 메서드 호출이 없습니다 ... 이 코드는 setStatusLine 구성 요소에 선택 수신기를 설정합니다.
코드 등가는
public class X implements SelectionListener{
//In the constructor or an other method.
setStatusLine.addSelectionListener(this);
public void widgetSelected(SelectionEvent e) {
String message = "I would like to say hello to you.";
if (pressed) {
message = "Thank you for using me";
}
setStatusLine(message);
pressed = !pressed;
}
}
메소드 addSelectionListener가 SelectionListener 인스턴스를 수신 할 수있다. "코드"를받지 못합니다. 혼란스러운 것은 새로운 < 클래스/인터페이스 이름>() {...}을 사용하는 것입니다. 이 구조는 anonymous inner classes에 사용됩니다. 실제로 위의 코드는 SelectionAdapter 클래스를 확장하여 widgetSelected 메서드를 재정의하고 새 클래스의 인스턴스를 만든 다음 addSelectionListener()에 전달합니다.
익명 내부 클래스 사용은 특정 클래스에서 사용되는 새 클래스를 만드는 리스너와 공통적입니다. 따라서 우리는 이름을 밝히지 않으며, 사용되는 상황에서 직접 구현하는 것을 선호합니다. 다른 참여자로
이미 말했다 : 그것은 익명 클래스입니다
당신은 그런 찾고 McClass.java라는 새로운 파일에 MyClass에라는 이름의 새로운 클래스를 생성 한 수: 그럼 당신을
class MyClass extends SelectionAdapter {
public void widgetSelected(SelectionEvent e) {
<your code that's being executed whenever the widget is being selected>
}
}
을 다음과 같이 첫 줄을 바꿀 수있었습니다.
setStatusLine.addSelectionListener (new MyClass());
참조? 이제는 함수 하나만있는 "명시 적"클래스가 있습니다. 종종 오버 헤드가 너무 많아 디자인이 혼란 스러울 수 있습니다.
도움이 되었습니까?
익명 내부 클래스를 이해하는 데 어느 정도 시간이 걸렸습니다. 기억해야 할 기본 사항은 다음과 같습니다.
매개 변수는 마치 매개 변수와 같습니다. 인터페이스에 구현 된 클래스에서 전달하는 프리미티브 또는 객체 대신 전달되는 대신 메소드에 따라 클래스를 확장합니다 (예 : 인터페이스에서도 작동합니다). 매개 변수. 익명이므로 메서드가 스택에서 튀어 나온 직후 "사라집니다". }}); 익명의 내면 클래스에 대한 희생이다. 청취자 이벤트를 위해 사용자 인터페이스에서 자주 팝업합니다. 코드에 혼란을 피할뿐만 아니라 읽기 어렵게 만듭니다.전체 처벌
는 JLS를 읽어 http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.9.5 당신이 그런 것들에 대해 본격 비교를 아는 SCJP 책을 읽고 시험은 좋은 일을하거나 JLS을 공부할 수에 관심이 있다면. 코드 작성 방법은 배우지 않지만 Java가 어떤 식 으로든 다른 많은 OO 언어가 어떻게 작동하는지 이해하는 데 도움이됩니다.
- 1. Java - Graph에 가장 적합한 구현 구조는 무엇입니까?
- 2. node.js의 애플리케이션 구조는 무엇입니까?
- 3. Java 실행 파일. 이 코드는 무엇을합니까?
- 4. java. context.getFormattedValue() 및 context.webRoot() 메소드 : 무엇을합니까?
- 5. <?> 템플릿은 Java SE6에서 무엇을합니까?
- 6. 데이터 구조는
- 7. C에서 좋은 프로젝트 구조는 무엇입니까
- 8. Java : PHP의 연관 배열을 모방하기 위해 사용할 데이터 구조는 무엇입니까?
- 9. fork = "true"는 무엇을합니까?
- 10. Container.validate() 메소드는 무엇을합니까?
- 11. 최고의 테이블 구조는 무엇입니까?
- 12. Android PackageManagerService의 구조는 무엇입니까?
- 13. IQueryable의 구조는 무엇입니까?
- 14. android 디렉토리 구조는 어떻습니까?
- 15. 데이터베이스 구조는 어떻게 될까요?
- 16. 이 데이터 구조는 무엇입니까?
- 17. Eclipse의 구조는 무엇입니까?
- 18. 데이터 구조는 lisp로
- 19. 포인터의 실제 구조는 무엇입니까?
- 20. 이 코드는 Groovy에서 무엇을합니까?
- 21. SIFT는 무엇을합니까?
- 22. FormsAuthentication.SetAuthCookie는 무엇을합니까
- 23. 이것은 무엇을합니까?
- 24. Ruby에서 == 무엇을합니까?
- 25. 이것은 무엇을합니까?
- 26. __sync_synchronize는 무엇을합니까?
- 27. AllowReversePInvokeCallsAttribute는 무엇을합니까?
- 28. NSData로 무엇을합니까?
- 29. System.Concurrency.AsyncLock은 무엇을합니까?
- 30. kSecReturnPersistentRef는 무엇을합니까?
익명의 클래스가 다시 공격합니다! 사람들이 그 이름을 모른다는 것에 대한 참조를 찾을 수 없다는 것을 정말로 비난 할 수는 없다 ... –
"나는 자바가 처음이에요 ..."- 당신은 얘들 아 :-) –
내가 자바를 배우기 시작할 때 나는 이것들과 힘들었다. – Skurmedel