#java #process
#java #процесс
Вопрос:
$ javac Main.java
Main.java:27: error: illegal static interface method call
ProcessHandle.current().allProcesses().mapToLong(w->w.pid()).forEach(System.out::println);
^
the receiver expression should be replaced with the type qualifier 'ProcessHandle'
1 error
Почему я получаю «выражение получателя должно быть заменено определителем типа ‘ProcessHandle'»?
Что мне делать вместо этого? Спасибо.
import java.lang.System;
import java.io.File;
import java.io.IOException;
import java.util.stream.Stream;
public class Main {
public static void main(String args[]){
System.out.println("visible processes pids are: ");
ProcessHandle.current().allProcesses().mapToLong(w->w.pid()).forEach(System.out::println);
}
}
Комментарии:
1. можете ли вы предоставить полный код Java. я ничего не могу сказать на основе этой ошибки.
2. Обновлено. Спасибо.
3. Вы не можете переопределить статические методы, но вы можете скрыть статические методы / члены.
4. Здесь вы пытаетесь переопределить ProcessHandle
Ответ №1:
Чего вы пытаетесь достичь здесь? Похоже, не имеет особого смысла запрашивать текущий дескриптор ProcessHandle, а затем использовать его для запроса allProcesses . Оба эти метода являются статическими. Вы, вероятно, хотите просто опустить «.current()».