🤯
İleri Seviye
İlgilenenlere biraz daha ileri seviye notlar

🍱 Modül Programlama

Modüller tek bir iş için yapılandırılmış projelerdir.
    Büyük projeler birdenn fazla modülden oluşur
    Her modül diğerlerinden bağımsız olarak işler
    Java 9 ve sonrasında gelen bir sistemdir
Java modül yapısı olan module-info.java dosyasını kullandığımızda src dizini sources özelliğine sahip olmazsa java.datatransfer ile java.desktop modülleri içerisindeki java.awt'ler çakışmakta ve hata vermekte 😢 (module yapısı)

🧱 module-info.java Yapısı

1
module ModulIsmı {
2
// Projeye dahil edilenler
3
requires javafx.fxml;
4
requires javafx.controls;
5
requires java.datatransfer;
6
requires java.desktop;
7
requires com.jfoenix;
8
requires com.gluonhq.charm.glisten;
9
10
// API isteklerini yardımcı araç ile açma @FMXL vs gibi
11
opens com.yedhrab.controllers to javafx.fxml;
12
13
// Dışa aktarılacak erişebilir class'lar (genelde Main)
14
exports com.yedhrab.ytoolsfx.application.MainApp;
15
}
Copied!

🛑 Tüm Thread'leri Durdurma

1
for (Thread t : Thread.getAllStackTraces().keySet()){
2
if (t.getState()==Thread.State.RUNNABLE)
3
t.interrupt();
4
}
Copied!

📚 Generic (Çoklu tip desteği)

Generic yapısı tipi belirsiz objeler için kullanılır.
    <T> ile tanımlanır gösterilir, T ile kullanlır
      T, Herhangi bir harf
    Int için T = int, string için T = String olarak işlem görür
    <T> deyimi her alanda kullanılabilir
      T[] dizi, ArrayList<T> dizi listesi vs..
1
The most commonly used type parameter names are:
2
3
E - Element (used extensively by the Java Collections Framework)
4
K - Key
5
N - Number
6
T - Type
7
V - Value
8
S,U,V etc. - 2nd, 3rd, 4th types
Copied!
1
public static <T> T[] print(T rastgele) {
2
System.out.println(rastgele)
3
return rasgele;
4
}
5
6
public static <E> void printArray( E[] inputArray ) {
7
// Display array elements
8
for(E element : inputArray) {
9
System.out.printf("%s ", element);
10
}
11
System.out.println();
12
}
Copied!

📜 Kod Notları (Code Snippets)

💘 Generic Olarak Dizileri Birleştirme

1
public static <T> T[] mergeArray(T[]... arrays) {
2
int totalLen = 0;
3
for (T[] arr: arrays) {
4
totalLen += arr.length;
5
}
6
7
@SuppressWarnings("unchecked") T[] all = (T[])Array.newInstance(
8
arrays.getClass().getComponentType().getComponentType(), totalLen);
9
10
int copied = 0;
11
for (T[] arr: arrays) {
12
System.arraycopy(arr, 0, all, copied, arr.length);
13
copied += arr.length;
14
}
15
return all;
16
}
Copied!

🌍 Tarayıcı Üzerinden Açma

1
void openInDefaultBrowser(String url) throws URISyntaxException, IOException {
2
if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
3
Desktop.getDesktop().browse(new URI(url));
4
}
5
}
Copied!

🖤 Terminal Komutları Çalıştırma

1
Process process = Runtime.getRuntime().exec(command);
2
// JDK 12
3
Process pb = new ProcessBuilder("myCommand", "myArg1", "myArg2").start();
4
Process pb = new ProcessBuilder(<string[]>).start();
Copied!

👀 Terminal Komutlarını Çalıştırma ve Çıktısını Görme

1
Runtime rt = Runtime.getRuntime();
2
String[] commands = {"system.exe", "-get t"};
3
Process proc = rt.exec(commands);
4
5
BufferedReader stdInput = new BufferedReader(new
6
InputStreamReader(proc.getInputStream()));
7
8
BufferedReader stdError = new BufferedReader(new
9
InputStreamReader(proc.getErrorStream()));
10
11
// Read the output from the command
12
System.out.println("Here is the standard output of the command:\n");
13
String s = null;
14
while ((s = stdInput.readLine()) != null) {
15
System.out.println(s);
16
}
17
18
// Read any errors from the attempted command
19
System.out.println("Here is the standard error of the command (if any):\n");
20
while ((s = stdError.readLine()) != null) {
21
System.out.println(s);
22
}
Copied!

🐞 Hata Notları

📌 Error:(1, 1) java: modules are not supported in -source 8 (use -source 9 or higher to enable modules)

    Settings
    Build, Execution, Development
    Compiler
    Java Compiler
    Project Byte Code Version ve Target Byte Code Version alanlarını 12 yapın

🔗 Harici Bağlantılar

Last modified 1yr ago