사용자 정의 메모 생성 코드 (1) 의javaPoetAPI 설명

9599 단어 코드 생성
사용자 정의 메모 생성 코드 (1) -javaPoetAPI 상세 설명
카탈로그
1. 앞말
2. JavaPoet의 일반 클래스
3. JavaPoet의 일반적인 방법
공통 방법
    3.1.1 코스메틱 키워드 설정
   3.1.2 주해 대상 설정
설정 참고 사항
생성 클래스, 인터페이스, 열거 대상
클래스 만들기 3.2.1
   3.2.2 인터페이스 만들기
   3.2.3 작성 열거
  3.3 계승, 실현 인터페이스
상속류
   3.3.2 인터페이스 구현
   3.3.3 상속 존재 범주 부류
  3.4 자바 클래스 추가 방법
  3.5 java 클래스 추가 열거
설명
수식자
설명 3.8
 3.9 실례화
  3.10 JavaPoet 생성 방법
   3.10.1 구조방법
   3.10.2 일반적인 방법
   3.10.3 방법 매개 변수
반환값 3.10.4
   3.10.5 방법체
방법체 템플릿
상위 3.10.7$T에 사용되는 상위 클래스
   3.108$N의 사용
   3.10.9$S 사용
이상
수정자 추가
설명 추가
속성 설정
  3.11 JavaPoet 생성 코드
코드 생성
3.11.2 코드를 콘솔에 인쇄
   3.11.3 코드를 파일로 출력
1. 앞말
최근에 재미있는 라이브러리를 발견했는데 자바poet을 번역한 후에 자바 시인이 되었다. 한마디로 우리가 코드를 번역하는 동안 자바 코드를 생성하는 것을 보조할 수 있다. 내부에 좋은 자바 포맷이 있고 자동 가이드를 완성할 수 있다. 응, 향기롭다.
2. JavaPoet의 일반 클래스
클래스 이름
설명
JavaFile
출력에 최고급 클래스를 포함하는 자바 파일을 구성하는 데 사용합니다. (생성된 자바 파일의 출력을 제어하는 클래스)
TypeSpec
생성 클래스, 인터페이스 또는 매거
MethodSpec
생성 구조 함수 또는 방법
FieldSpec
구성원 변수 또는 필드 생성
ParameterSpec
매개변수 생성하기
AnnotationSpec
메모 생성에 사용
ClassName
패키지 이름과 클래스 이름을 통해 생성된 객체는 JavaPoet에서 Class를 지정하는 것과 같습니다.
ParameterizedTypeName
MainClass와 IncludeClass를 통해 일반적인 Class를 생성합니다
3. JavaPoet의 일반적인 방법
3.1 일반적인 방법
3.1.1 장식 키워드 설정
addModifiers(Modifier... modifiers)

Modifier는 코스메틱 키워드 Public, Protected, Private, Static, Final 등의 열거 값을 가지는 열거 대상입니다.JavaPoet에 생성된 모든 대상은 수식자 (방법, 클래스, 인터페이스, 매거, 매개 변수 포함) 를 설정해야 합니다.
3.1.2 메모 객체 설정
addAnnotation(AnnotationSpec annotationSpec)
addAnnotation(ClassName annotation)
addAnnotation(Class> annotation)

이 방법은 클래스나 방법 또는 파라미터에 주석을 설정하고 파라미터는 AnnotationSpec일 수도 있고 ClassName일 수도 있으며 직접 전달Class할 수도 있다.일반적인 상황에서 복잡한 속성을 포함하는 주석은 일반적으로 AnnotationSpec를 사용하지만 단순히 기본 주석을 추가하면 다른 부가 속성이 없으면 직접 사용할 수 있다ClassName 또는 Class.
3.1.3 설치 주석
addJavadoc(CodeBlock block)
addJavadoc(String format, Object... args)

클래스, 방법, 구성원 변수를 작성할 때 addJavadoc를 통해 주석을 설정할 수 있으며, 직접 String 대상을 전송하거나 CodeBlock (코드 블록) 을 전송할 수 있습니다.
3.2 생성 클래스, 인터페이스, 매거 대상JavaPoet에서 클래스, 인터페이스, 매거진을 생성하려면 TypeSpec를 통해 생성해야 한다. classBuilder、interfaceBuilder、enumBuilder가 바로 그 관건적인 방법이다.
3.2.1 클래스 만들기
TypeSpec.classBuilder("  “) 
TypeSpec.classBuilder(ClassName className)

3.2.2 인터페이스 만들기
TypeSpec.interfaceBuilder("    ")
TypeSpec.interfaceBuilder(ClassName className)

>
3.2.3 열거 작성
TypeSpec.enumBuilder("    ")
TypeSpec.enumBuilder(ClassName className)

3.3 계승, 실현 인터페이스
3.3.1 계승류
.superclass(ClassName className)

>
3.3.2 인터페이스 구현
.addSuperinterface(ClassName className)  

3.3.3 일반적인 부류가 존재하는 계승
상속 부모 클래스에 범주가 있을 때 ParameterizedTypeName
ParameterizedTypeName get(ClassName rawType, TypeName... typeArguments)

되돌아오는 ParameterizedTypeName 대상, 일반 정보가 추가되었습니다.
3.4 자바 클래스 추가 방법
addMethod(MethodSpec methodSpec)

설정MethodSpec 대상을 통해 addMethod 방법으로 TypeSpec에 추가합니다.
3.5 자바 클래스 추가 열거
addEnumConstan(String enumValue)
addEnumConstan 방법을 통해 매개 변수를 추가합니다. 매개 변수는 매개 값의 이름입니다.JavaPoet 구성원 변수 생성JavaPoet 생성 구성원 변수는 FieldSpecbuild 방법을 통해 생성된다.
builder(TypeName type, String name, Modifier... modifiers)

전입TypeName(Class)、name( )、Modifier( )만 하면 기본적인 구성원 변수를 생성할 수 있다.
구성원 변수는 일반적으로 주해(Annotation), 수식자(Modifier), Javadoc(주석), initializer(실례화)로 한다.
3.6 메모
addAnnotation(TypeName name) 

3.7 수식부
addModifiers(Modifier ...modifier)

3.8 주석
addJavadoc(String format, Object... args)

상술한 세 가지 방법은 모두 통용적인 방법으로 소개되었기 때문에 여기서 다시 소개하지 않는다.
3.9 실례화
initializer(String format, Object... args)

예를 들어 멤버 변수의 인스턴스화입니다.
public Activity mActivity = new Activity;
initializer 방법 중의 내용은 "=" 뒤의 내용이다. 다음은 구체적인 코드 실현, 위의 구성원 변수를 살펴보자.
  ClassName activity = ClassName.get("android.app", "Activity");
  FieldSpec spec = FieldSpec.builder(activity, "mActivity")
                .addModifiers(Modifier.PUBLIC)
                .initializer("new $T", activity)
                .build();

3.10 JavaPoet 생성 방법
JavaPoet 생성 방법은 두 가지로 나뉘는데 첫 번째는 구조 방법이고 다른 하나는 일반적인 방법이다.
3.10.1 구조 방법
MethodSpec.constructorBuilder()

3.10.2 일반적인 방법
MethodSpec.methodBuilder(String name)

방법의 주요 구성은 방법 매개 변수, 주석, 반환값, 방법체, 이상 던지기 다섯 가지가 있는데 주석은 통용적인 방법addAnnotation을 참고할 수 있고 다른 방법은 우리가 하나하나 소개할 것이다.
3.10.3 방법 매개 변수
addParameter(ParameterSpec parameterSpec)

메소드 매개 변수를 설정하는 방법은 addParameterSpec을 통해 이루어지며, ParameterSpec의 구체적인 사용은 다음 소절을 참조하십시오.
3.10.4 반환치
returns(TypeName returnType)

설정 방법의 반환값은 TypeName 대상만 전송하고 TypeNameClassName,ParameterizedTypeName의 기본 클래스입니다.
3.10.5 방법체
JavaPoet에서 메서드 컨텐츠를 설정하는 방법에는 addCodeaddStatement 두 가지 방법이 있습니다.
addCode()

addStatement()

이 두 가지는 본질적으로 방법체 내용을 설정하는 것이지만 다른 것은addStatement() 방법을 사용할 때 이 단락 코드의 내용에만 집중하면 끝부분의 번호와 줄을 바꾸는 것이 도움이 된다.addCode()에 추가된 방법체의 내용은 포맷이 없는 코드 필름으로 개발자 스스로 포맷을 추가해야 한다.
3.10.6 방법체 템플릿
JavaPoet에서는 설정 메서드가 템플릿을 사용하는 경우가 많습니다addCodeaddStatement 메서드에 모두 다음과 같은 리셋이 있습니다.
addCode(String format, Object... args)

addStatement(String format, Object... args)

JavaPoet에서 format에는 세 가지 특정 자리 표시자가 있습니다.
3.10.7달러 T 사용$TJavaPoet에서는 TypeName을 가리키는데 이 템플릿은 주로 Class를 추상화하여 전송된 TypeName이 가리키는 Class로 대체한다.
ClassName bundle = ClassName.get("android.os", "Bundle");
addStatement("$T bundle = new $T()",bundle)

위에서 설명한 코드 내용은 다음과 같습니다.
Bundle bundle = new Bundle();

3.10.8달러 N 사용$N JavaPoet에서 가리키는 이름은 호출된 방법의 이름, 변수의 이름, 이런 의미가 존재하는 이름이다.
addStatement("data.$N()",toString)

위 코드에 추가된 내용:
data.toString();

3.10.9$S 사용$SJavaPoet에서 String.format에서%s와 같이 문자열의 템플릿으로 지정한 문자열을 $S로 바꿉니다
.addStatement("super.$S(savedInstanceState)","onCreate")

$S 위치에서 "onCreate"문자열을 대체합니다.
3.10.10 이상 던지기
.addException(TypeName name)

설정 방법으로 이상을 던지면 addException 방법으로 지정한 이상ClassName을 전송하여 이 방법으로 이상을 던지도록 설정할 수 있다.
JavaPoet 생성 메소드 매개 변수JavaPoet은 참조 메소드를 생성할 때 매개 변수를 채워야 하고 생성 매개 변수는 ParameterSpec클래스를 통과해야 합니다.
addParameter(ParameterSpec parameterSpec)

초기화ParameterSpec
ParameterSpec.builder(TypeName type, String name, Modifier... modifiers)

매개 변수에 Class를 설정하고 매개 변수의 이름과 수식자를 설정합니다.
일반적으로 파라미터의 구성은 파라미터의 유형(Class), 파라미터의 명칭(name), 수식자(modifiers), 주석(Annotation)을 포함한다.
builder 방법의 초기화 형식, 그리고 이름, 수식자를 제외하고는 다음과 같은 방법으로 설정할 수 있습니다.
3.10.11 수식자 추가
.addModifiers(Modifier modifier)

상용 수식부호PUBLIC, PROTECTED, PRIVATE, ABSTRACT, DEFAULT, STATIC, FINAL, TRANSIENT, VOLATILE, SYNCHRONIZED, NATIVE, STRICTFP;3.10.12 주석 추가
addAnnotation(TypeName name) 

수식자, 주해를 추가하여 구체적으로 사용하면 일반적인 방법을 참고할 수 있다.
JavaPoet 메모 생성
메모에는 JavaPoet에서 클래스, 멤버 변수, 메소드 매개변수, 메소드를 작성할 때 사용됩니다.
속성이 없는 메모를 사용하면
.addAnnotation(TypeName name)

직접 전송TypeName 또는 Class로 설정합니다.
만약에 사용된 주석이 속성을 포함하고 한 가지가 아니라면 이때 생성AnnotationSpec을 통해 해결해야 한다. 다음은 간단하게 알아보자AnnotationSpec.
초기화AnnotationSpec
AnnotationSpec.builder(ClassName type)

초기화는 전송ClassName 또는 Class만 하면 된다.
3.10.13 속성 설정
addMember(String name, String format, Object... args)
addMember를 사용하면 주석의 속성 값을 설정할 수 있다. name에 대응하는 것은 속성 이름이고 format의 내용은 속성체이다. 같은 방법체의 포맷은 여기서도 적용된다.
3.11 JavaPoet 생성 코드
만약 상술한 내용을 다 보았다면 축하합니다. 자바팟의 의도를 알았지만, 현재 당신은 코드를 어떻게 만드는지 마지막 단계가 남았습니다.
3.11.1 코드 생성
JavaPoet에서 생성을 담당하는 클래스는 JavaFile입니다.
JavaFile.builder(String packageName, TypeSpec typeSpec)
JavaFile방향build방법으로 전달PackageName(Java )、TypeSpec( )하여 생성.
3.11.2 코드를 콘솔에 인쇄
javaFile.writeTo(System.out)

생성된 컨텐트가 콘솔에 출력됩니다.
3.11.3 코드가 파일로 출력
javaFile.writeTo(File file)

생성된 내용은 자바 파일로 File 파일을 전송하는 위치에 저장됩니다

좋은 웹페이지 즐겨찾기