null을 싫어하는 척하자. @ Nullable처럼 선택 해제하는 것이 나를 위해 충분하지 않다고 가정 해 봅시다. 옵트 인을 원한다고 가정 해 봅시다. 오브젝트가 @ Nullable로 명시 적으로 주석되어 있지 않으면 널 (NULL)이 허용되지 않습니다.nulls opt-in 만 허용
예 :
MyClass derp = null; // Compiler error
@Nullable MyClass derp = null; // Fine
@Nullable Integer x = 4; // Fine
@Nullable Integer x = null; // Fine
Integer x = 4; // Fine
Integer x = null; // Compiler error
또 다른 예 :
public static void myFunction(@Nullable Integer x) {
Integer y = x; // Compiler error, because we know x might
// be null, and that's not allowed. In other
// words: Integer != @Nullable Integer
}
가 어떻게이 가겠어요? javac 플러그인을 작성해야합니까? 아마도 사전 컴파일러 통과일까요? 이 작업을 수행하는 프레임 워크가있을 수 있습니까? 아니면 javac의 소스 코드를 수정할 수 있습니까?
감사합니다.
배열에 대해 무엇을 할 계획입니까? 구현을 고려하기 전에 필요한 모든 언어 변경 사항을 생각해 보려고합니다. –
어 ... 좋은 지적이야. 아마도 Nullable []을 사용하여 기본 생성자를 호출하거나 MyClass []와 같은 것을 무법화 할 수 있습니다. 내 질문에서 제안하는 것을해야한다고 말하지는 않겠지 만, 우리가 그렇게하기로 결심했다면 얼마나 어려울지를 알고 싶다. –
Verdagon
난이도는 언어의 변화 정도에 달려 있습니다. 그렇지 않습니까? 적어도 상당 부분. 아마도 –