? para ajuda, espaço para navegar
// Obtendo o próprio PIDs ou de processos já iniciados
out.println("Your pid is " + ProcessHandle.current().getPid());
Process p = Runtime.getRuntime().exec("sleep 1h");
ProcessHandle h = ProcessHandle.of(p.getPid()) // Opcional
.orElseThrow(IllegalStateException::new);
// Fazendo algo ao sair de um processo // CompletableFuture
h.onExit().thenRun( ()-> out.println("Sleeper exited") );
// Pegando informação do processo
out.printf("[%d] %s - %s\n", h.getPid(),
h.info().user().orElse("unknown"),
h.info().commandLine().orElse("none"));
// Finalizando o processo
h.destroy();
````
/* Seções de comentários iriam quebrar ... */
List<Integer> listOfNumbers = List.of(1, 2, 3, 4, 5/*, null*/);
Set<Integer> setOfNumbers = Set.of(1, 2, 3, 4, 5/*, 1*/);
Map<String, String> mapOfString =
Map.of("key1", "value1", "key2", "value2");
Map<String, String> moreMapOfString =
Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")/*,
Map.entry("key1", "value3")*/
);
````
// retorno de classe/método somente para nossas classes.
private static List<String> walkAndFilterStackframe() {
return StackWalker.getInstance().walk(s ->
s.map( frame-> frame.getClassName()+"/"+frame.getMethodName())
.filter(name -> name.startsWith("de.exxcellent"))
.limit(10)
.collect(Collectors.toList()) );
}
````
// Todos os bytes de um InputStream de uma só vez
byte[] result = new ByteArrayInputStream(buf)
.readAllBytes();
// Diretamente redirecionado de um InputStream para um OutputStream
new ByteArrayInputStream(buf)
.transferTo(System.out);
````