«default-method» 태그된 질문

15
사용시기 : Java 8+ 인터페이스 기본 방법과 추상 방법
Java 8에서는 Default Methods 라는 인터페이스에서 메소드의 기본 구현을 허용합니다 . 나는 (with ) interface default method대신 언제 그런 종류의을 사용할 것인지 혼동 합니다.abstract classabstract method(s) 그렇다면 언제 기본 메소드와의 인터페이스를 사용해야하고 추상 클래스 (추상 메소드와 함께)를 사용해야합니까? 해당 시나리오에서 추상 클래스가 여전히 유용합니까?

5
Java 8 인터페이스 메소드에서 "최종"이 허용되지 않는 이유는 무엇입니까?
Java 8의 가장 유용한 기능 중 하나는 default인터페이스 의 새로운 메소드입니다. 그들이 소개 된 이유는 본질적으로 두 가지가 있습니다 (다른 것들이있을 수 있습니다). 실제 기본 구현 제공 예:Iterator.remove() JDK API 진화를 허용합니다. 예:Iterable.forEach() API 디자이너의 관점에서 나는 인터페이스 메소드에 다른 수정자를 사용할 수 있기를 원했습니다 final. 이는 편리한 메소드를 추가 …

4
Java에서 기본 메소드를 명시 적으로 호출
Java 8에는 기존 구현을 수정하지 않고도 인터페이스를 확장 할 수있는 기본 방법 이 도입되었습니다 . 다른 인터페이스에서 충돌하는 기본 구현으로 인해 해당 메서드가 재정의되었거나 사용할 수없는 경우 메서드의 기본 구현을 명시 적으로 호출 할 수 있는지 궁금합니다. interface A { default void foo() { System.out.println("A.foo"); } } class B implements …

2
Java 8 인터페이스 메소드에서 "동기화"가 허용되지 않는 이유는 무엇입니까?
Java 8에서는 다음과 같이 쉽게 작성할 수 있습니다. interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } 클래스에서도 사용할 수있는 전체 동기화 의미론을 얻습니다. 그러나 synchronized메소드 선언에 수정자를 사용할 수는 없습니다 . interface …

5
Java8 : java.lang.Object에서 메소드의 기본 메소드를 정의하는 것이 금지 된 이유
기본 메소드는 Java 툴박스의 새로운 도구입니다. 그러나 메소드 의 default버전 을 정의하는 인터페이스를 작성하려고했습니다 toString. Java는 선언 된 메소드 java.lang.Object가 수행되지 않을 수 있으므로 금지되어 있다고 말합니다 default. 왜 이런 경우입니까? "기본 클래스 항상 승리"규칙이 있다는 것을 알고 있으므로 기본적으로 (pun;) 메소드의 default구현은 어쨌든 Object메소드에 의해 덮어 쓰여집니다 Object. 그러나 …

1
특성으로 Java 8 기본 방법 : 안전합니까?
Java 8에서 기본 메소드를 가난한 사람 버전의 특성 으로 사용하는 것이 안전한 방법 입니까? 어떤 사람들은 팬더 를 사용하면 팬더를 슬프게 할 수 있다고 주장합니다 . 왜냐하면 멋있기 때문입니다.하지만 그것은 내 의도가 아닙니다. 또한 API 진화 및 이전 버전과의 호환성을 지원하기 위해 기본 메서드가 도입되었다는 사실을 종종 상기시킵니다. 이는 사실이지만, …

4
기본 메소드가있는 인터페이스는 언제 초기화됩니까?
대답 Java 언어 사양을 통해 검색하는 동안 이 질문을 , 나는 배운 것을 클래스가 초기화되기 전에 직접 수퍼 클래스를 초기화해야 하지만 클래스에 의해 구현 된 인터페이스는 초기화되지 않습니다. 마찬가지로 인터페이스의 수퍼 인터페이스는 인터페이스가 초기화되기 전에 초기화되지 않습니다. 호기심 때문에 시도해 보았지만 예상대로 인터페이스 InterfaceType가 초기화되지 않았습니다. public class Example { …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.