본문 바로가기

Java19

제한된 타입 파라미터 제한된 타입 파라미터() 타입 파라미터에 지정되는 구체적인 타입을 제한할 필요가 종종 있다. 예를 들어 숫자를 연산하는 제네릭 메소드는 매개값으로 Number 타입 또는 하위 클래스 타입(Byte, Short, Integer, Long, Double)의 인스턴스만 가져야 한다. 이것이 제한된 타입 파라미터(bounded type parameter)가 필요한 이유이다. 제한된 타입 파라미터를 선언하려면 타입 파라미터 뒤에 extends 키워드를 붙이고 상위 타입을 명시하면 된다. 상위 타입은 클래스뿐만 아니라 인터페이스도 가능하다. 인터페이스라고 해서 implements를 사용하지 않는다. public 리턴타입 메소드(매개변수, ...) { ... } 타입 파라미터에 지정되는 구체적인 타입은 상위 타입이거.. 2020. 7. 2.
제네릭 메소드 제네릭 메소드( R method(T t)) 제네릭 메소드는 매개 타입과 리턴타입으로 타입 파라미터를 갖는 메소드를 말한다. 제네릭 메소드를 선언하는 방법은 리턴 타입 앞에 기호를 추가하고 타입 파라미터를 기술한 다음, 리턴 타입과 매개 타입으로 타입 파라미터를 사용하면 된다. public 리턴타입 메소드명(매개변수, ...) { ... } 다음 boxing() 제네릭 메소드는 기호 안에 타입 파라미터 T를 기술한 뒤, 매개 변수 타입으로 T를 사용했고, 리턴 타입으로 제네릭 타입 Box를 사용했다. public Box boxing(T t) { ... } 제네릭 메소드는 두 가지 방식으로 호출할 수 있다. 코드에서 타입 파라미터의 구체적인 타입을 명시적으로 지정해도 되고, 컴파일러가 매개값의 타입을 보고 .. 2020. 7. 2.
제네릭 타입 왜 제네릭을 사용해야 하는가? 제네릭 타입을 이용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있게 되었다. 제네릭은 클래스와 인터페이스, 그리고 메서드를 정의할 때 타입(type)을 파라미터(parameter)로 사용할 수 있도록 한다. 컴파일 시 강한 타입 체크를 할 수 있다. 자바 컴파일러는 코드에서 잘못 사용된 타입 때문에 발생하는 문제점을 제거하기 위해 제네릭 코드에 대해 강한 타입체크를 한다. 실행 시 타입 에러가 나는 것보다는 컴파일 시에 미리 타입을 강하게 체크해서 에러를 사전에 방지하는 것이 좋다. 타입 변환(casting)을 제거한다. 비제네릭 코드는 불필요한 타입 변환을 하기 때문에 프로그램 성능에 악영향을 미친다. 다음 코드를 보면 List에 문자열 요소를.. 2020. 7. 2.
예외 발생 및 회피 예외 발생시키 자바에서는 throw 키워드를 사용하여 강제로 예외를 발생시킬 수 있습니다. Exception e = new Exception("오류메시지"); ... throw e; 위의 예제처럼 생성자에 전달된 문자열은 getMessage() 메소드를 사용하여 오류 메시지로 출력할 수 있습니다. 예외 회피하기 메소드 선언부에 throws 키워드를 사용하여 해당 메소드를 사용할 때 발생할 수 있는 예외를 미리 명시할수도 있습니다. 이렇게 하면 해당 메소드를 사용할 때 발생할 수 있는 예외를 사용자가 충분히 인지할 수 있으며, 그에 대한 처리까지도 강제할 수 있습니다. 따라서 더욱 안정성 있는 프로그램을 손쉽게 작성할 수 있도록 도와줄 수 있습니다. 다음 예제는 호출된 메소드에서 발생한 예외를 호출된 메소.. 2020. 7. 2.