> Java > java지도 시간 > Java에서 '호환되지 않는 유형: void를 ...로 변환할 수 없습니다'라는 오류가 발생하는 이유는 무엇입니까?

Java에서 '호환되지 않는 유형: void를 ...로 변환할 수 없습니다'라는 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-26 14:35:13
원래의
477명이 탐색했습니다.

Why Does Java Throw

호환되지 않는 유형 이해: Void는 변환할 수 없습니다

Java 컴파일러 오류 메시지 "호환되지 않는 유형: void는 ...로 변환할 수 없습니다." 반환이 필요한 방식으로 값을 반환하지 않는 메서드를 사용하려는 시도를 나타냅니다. value.

Void의 의미는 무엇인가요?

Void는 "값 없음"을 의미하는 Java의 고유한 유형입니다. void로 선언된 메소드는 결과를 반환하지 않습니다.

오류 원인

이 오류는 다음과 같은 경우에 발생합니다.

  • 다음과 같이 선언된 메소드 void가 호출되고 코드는 반환 값을 변수에 할당하거나 void에서 사용하려고 시도합니다. 표현식.
  • 메서드는 특정 유형의 반환 값을 기대하지만 호출된 메서드는 void를 반환합니다.

오류 수정 방법

해결책은 원하는 동작에 따라 다릅니다.

  • 메서드가 반환해야 하는 경우 값: 적절한 유형(예: int, String)을 반환하도록 메서드 선언을 수정합니다.
  • 메서드가 값을 반환할 필요가 없는 경우: 할당을 생략하거나 반환 값을 사용하지 않고 메서드를 사용하세요.

자세히 예

다음 코드를 고려하세요.

public class Test {
    private static void add(int a, int b) {
        int res = a + b;
    }

    public static void main(String[] args) {
        int sum = add(1, 1);
    }
}
로그인 후 복사

컴파일할 때 이 코드는 오류가 발생합니다.

error: incompatible types: void cannot be converted to int
로그인 후 복사

이는 add 메서드가 다음과 같기 때문입니다. void로 선언되었지만 기본 메서드에서 호출하면 반환 값을 int 변수에 할당하려고 시도합니다. 이 문제를 해결하려면:

  • 옵션 1: 결과를 ​​반환하도록 add 메서드를 변경하세요.
private static int add(int a, int b) {
    int res = a + b;
    return res;
}
로그인 후 복사
  • 옵션 2: 메인에서 과제 생략 방법:
public static void main(String[] args) {
    add(1, 1);
}
로그인 후 복사

위 내용은 Java에서 '호환되지 않는 유형: void를 ...로 변환할 수 없습니다'라는 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿