Java8-Annotation+Java8의 새로운 기능

2716 단어 java8
Annotation:
Annotation은 JDK 1입니다.5 가장 큰 특색은 주석의 형식을 이용하여 프로그램의 서로 다른 기능을 실현한다.
자바SE에서 사용자 정의 Annotation 개발을 지원하고 가장 자주 사용하는 3개의 기초 Annotation: @Override, @Deprecated, @SuppressWarnings를 제공합니다.
정확하게 덮어쓰기: @Override:
class Book {
	@Override //          
	public String toString() {
		return "hello";
	}
}

public class test {
	public static void main(String args[]) {
		System.out.println(new Book());
	}
}

@Override를 추가하지 않으면 덮어쓸 때 방법의 이름 대소문자가 잘못되어 컴파일한 후에만 검사할 수 있으며 @Override를 추가한 후에 컴파일하는 과정에서 발견할 수 있습니다.
만료 선언: @Deprecated:
class Book {
	@Deprecated //         
	public String toString() {
		return null;
	}
}

public class test {
	public static void main(String args[]) {
		Book book = new Book();
		book.toString();
	}
}

@Deprecated는 이 방법이 만료되었음을 설명하는 데 사용되며 개발자는 계속 사용하지 마십시오. 그러나 이전의 개발 프로그램에서 이미 사용한 경우 이 방법을 계속 사용할 수 있습니다.
경고 억제: @SuppressWarnings:
개발 과정에서 어떤 문제가 발생할지 알고 경고 알림 정보가 나타나지 않기 위해 존재하는 강박증의 복지를 개발하고 있다.
Java8의 새로운 기능:
인터페이스 정의 향상:
interface IMessage {
	public abstract void print();

	default void fun() {
		System.out.println("hello");
	}
}

class Message implements IMessage {
	public void print() {
		System.out.println("world");
	}
}

public class test {
	public static void main(String args[]) {
		IMessage msg = new Message();
		msg.fun();
	}
}

인터페이스는 전역 상수와 추상적인 방법으로 구성되어 있으며 인터페이스에서 일반 함수를 정의할 필요가 있으면default 키워드를 사용하여 방법을 정의해야 한다. 예를 들어 위 코드가 출력한 것은hello이다.default 키워드를 제외하고static 키워드 정의도 사용할 수 있으며 클래스 이름으로 직접 호출할 수 있습니다.
JDK1.8 가장 중요한 개념이 있는데 내부 클래스가 매개 변수를 방문할 때final 키워드를 추가하지 않아도 된다.
  • 인터페이스 요약:
  • 인터페이스가default와static 키워드를 사용하는 역할은 하위 클래스가 같은 코드를 반복하는 것을 피하는 데 있다.
  • 인터페이스의 사용은 추상적인 방법을 위주로 해야 한다.

  • Lamda 표현식:
    함수식 프로그래밍에 속하는 개념;익명 내부 클래스에 연락해야 합니다.
    interface IMessage {
    	public abstract void print();
    }
    
    public class test {
    	public static void main(String args[]) {
    		fun(() -> System.out.println("hello"));
    	}
    
    	public static void fun(IMessage msg) {
    		msg.print();
    	}
    }
    
  • Lamda 문법에는 세 가지 형식이 있다.
  • (파라미터)->단행문장;
  • (매개 변수)-> {다행문};
  • (매개 변수)->표현식
  • Lamda 표현식을 이용하여 익명 내부 클래스가 너무 쓸모없는 정의를 피하고 코드 형식을 간소화했다.
    메소드 참조:
    방법 인용은 하나의 방법에 대한 별명을 설정하는데 하나의 방법에 서로 다른 이름이 있는 것과 같다. 다음과 같은 네 가지 정의가 있다.
  • 정적 방법 인용: 클래스 이름::static 방법 이름;
  • 어떤 대상을 인용하는 방법: 실례화 대상: 일반적인 방법;
  • 특정 유형을 인용하는 방법: 특정 유형: 일반 방법;
  • 인용 구조 방법: 클래스 이름::new;

  • 함수의 인용을 실현하려면 반드시 인터페이스를 사용해야 하지만 한 인터페이스에 하나의 방법만 있을 수 있고 여러 방법이 존재하면 인용할 수 없다.
    @FunctionalInterface 표시 함수식 프로그래밍을 추가할 수 있고 한 인터페이스에 방법이 하나만 있을 수 있습니다.

    좋은 웹페이지 즐겨찾기