-
Optional<ProcessHandle>은 자바에서 제공하는 java.util.Optional클래스를 사용하여 ProcessHandle 객체를 감싸는 래퍼이다. Optional이 값의 존재 여부를 나타내는 컨테이너로 사용되고, 값이 존재하는 경우에는 해당 값을 포함하고, 값이 존재하지 않는 경우에는 null이 아닌 대체 값을 제공한다.
Java 8부터 도입된 Optional<T>는 'null'을 포함할 수 있는 값을 감싸는 컨테이너 클래스이다. Optional<T>는 값이 존재하지 않을 수도 있는 경우를 다룰 때에 유용하게 사용된다. 값이 없을 수 있는 상황에서 null을 처리하는 대신 Optional을 사용하여 명시적으로 처리하는 것이다. Optional클래스는 이렇게 값의 존재 여부를 명시적으로 다루기 위해 사용되며, NullPointerException을 방지하고 코드의 안정성을 높이는데 도움이 된다.
ProcessHandle은 Java 9부터 도입된 클래스로, 프로세스를 나타내는 핸들을 제공한다. ProcessHandle은 운영체제의 현재 프로세스 또는 다른 프로세스에 대한 정보를 가져오고 조작하는데 사용된다. ProcessHandle 객체는 프로세스의 ID, 상태, 부모 및 자식 프로세스 등의 정보를 제공한다.
▼ProcessHandle 참고▼
https://code0123.tistory.com/164
[JAVA/자바] ProcessHandle
public interface ProcessHandle extends Comparable ProcessHandle은 기본 프로세스를 식별하고 제어한다. 각각의 개별 프로세스는 활성 여부를 모니터링하고, 자식을 나열하고, 프로세스에 대한 정보를 얻거나
code0123.tistory.com
따라서, Optional<ProcessHandle>은 ProcessHandle 객체가 존재할 수도 있고 존재하지 않을 수도 있다는 것을 나타낸다. 즉, Optional<ProcessHandle>은 ProcessHandle 객체가 없는 경우의 처리에 대한 매커니즘을 제공한다
import java.util.Optional; //java.util.Optional을 사용하여 ProcessHandle을 얻고 출력하는 예제 public class OptionalExample { public static void main(String[] args) { //ProcessHandle.of(12345)를 사용하여 프로세스ID가 12345인 프로세스에 대한 Optional<ProcessHandle> 객체를 생성한다 Optional<ProcessHandle> processHandleOptional = ProcessHandle.of(12345); // /*if 문을 사용하여 processHandleOptional이 값으로 존재하는지 확인한다. isPresent() 메서드는 Optional 객체가 값을 포함하고 있는지 여부를 반환한다.*/ if (processHandleOptional.isPresent()) { /*processHandleOptional이 값을 포함하고 있을 경우, get() 메서드를 사용하여 실제 값인 ProcessHandle 객체를 가져온다*/ ProcessHandle processHandle = processHandleOptional.get(); //processHandle.pid()를 호출하여 프로세스의 ID를 얻는다 System.out.println("Process ID: " + processHandle.pid()); } else { System.out.println("Process not found."); } } }
'Programming > JAVA' 카테고리의 다른 글
[JAVA/자바] Thread 클래스를 상속받아 스레드 만들기 (0) 2023.06.06 [JAVA/자바] 자바의 멀티스레딩 (1) 2023.06.06 [JAVA/자바] ProcessHandle (0) 2023.06.04 [JAVA/자바] this 레퍼런스 (0) 2023.05.16 [JAVA/자바] 생성자 개념 정리 (0) 2023.05.15 댓글