Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Java 21

Java 21 – Record Patterns Nedir? (JEP 440)

Paylaş

Merhaba, bu yazıda Java 21 ile gelen Record Pattern ile gelen yeni ozellikler nedir ve nasıl kullanılacağından ve ne gibi avantajları olduğundan bahsedeceğim.

İçindekiler

Toggle
  • Java Record Nedir?
  • Pattern matching instanceof
  • Nested Record Patterns

Java Record Nedir?

Java 14 sonrası gelen Record’un ne olduğu hakkında bilgi almak istiyorsanız aşağıdaki bağlantidan bilgi alabilirsiniz.

İlgini Çekebilir: Java Record Nedir?

Pattern matching instanceof

Bir nesnenin tip karsılaştırmasını yapmak için ve değerlerini alabilmek icin Java 16’dan itibaren aşagıdaki gibi kullanılabiliyorduk.

record Calculate(int x, int y) {}

static void printSum(Object obj) {
 if (obj instanceof Calculate c) {
   int x = c.x();
   int y = c.y();
   System.out.println(x+y);
 }
}
Code language: Java (java)

Nesnemizin alanlarına erişmek içinde çağırmamız gerekmekteydi Java 21 ile artık bu yapıyı aşağıdaki gibi kullanabiliyor olacağız.

record Calculate(int x, int y) {}

static void printSum(Object obj) {
 if (obj instanceof Calculate(int x, int y)) {
        System.out.println(x+y);
    }
}
Code language: Java (java)

Yukarıdaki gibi bir tanımlama yapabilmekteyiz. Yeni gelen bu özellik sayesinde nesnemizin alanlarını da taşımız oluyoruz.

Nested Record Patterns

İç içe Record kullanılabilmesine olanak sağlamaktadır. Bu özellik sayesinde oluşturduğumuz record nesnesinin alanlarını almak için kullanılan Record patternleri iç içe yani nested olarak kullanmabilmemize olanak sağlamaktadır.

Örnek olarak

record Point(int x, int y) {}
enum Color { RED, GREEN, BLUE }
record ColoredPoint(Point p, Color c) {}
Code language: Java (java)

Record nesnelerimizin içerisindeki bir değerleri nested olarak record pattern kullanarak Record nesnesinin renk değerine de erişebiliriz.

static void printColorOfUpperLeftPoint(Rectangle r) {
    if (r instanceof Rectangle(ColoredPoint(Point p, Color c),
                               ColoredPoint lr)) {
        System.out.println(c);
    }
}
Code language: Java (java)

Record kullanmadan bu yapıyı kullanmak isteseydik

Rectangle r = new Rectangle(new ColoredPoint(new Point(x1, y1), c1), 
                            new ColoredPoint(new Point(x2, y2), c2));Code language: JavaScript (javascript)

Şeklinde bir yapı tamamlamamız gerekmekteydi.

Recordları nested olarak kullandığımız takdirde kendisi de bir Recordtur. Record sınıflarını bu şekilde genişletebilmekteyiz.

Tags:

Java 21Java 21 NedirJava 21 Yeni Gelen Özelliklerjava recordjava record örnek

Paylaş

Diğer Yazılar

Spring Boot Dersleri @ConditionalOnExpression Uygulama Ornegi
Previous

Spring Boot @ConditionalOnExpression Nedir? Uygulama Örneği

blank
Next

İlham Veren İçerikler

Next
blank
27 Kasım 2023

İlham Veren İçerikler

Previews
01 Ağustos 2023

Spring Boot @ConditionalOnExpression Nedir? Uygulama Örneği

Spring Boot Dersleri @ConditionalOnExpression Uygulama Ornegi

No Comment! Be the first one.

Bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Java 21 Virtual Threads Özelliği Nedir? Uygulama Kod Örneği

Java 21 – Virtual Threads Nedir? Virtual Threads Uygulama Örneği

Java 21 String Templates Nedir Java 21 Özellikleri

Java 21 – String Templates Nedir? (JEP 430)

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Node.js
Java 24
Android
Struts
Röportaj
Gradle
Amazon Web Services
Vue.js
Video
Redis
Spring Boot 3.0
Debezium
Mikroservis Mimarisi
Spring Native
Spring Cloud Stream
Etkinlikler
XCode
JPA
Objective C
iPhone Uygulama Geliştirme
PostgreSQL
Spring Security
MongoDB
Java 21
Spring Data
Apache Kafka
Yaptığım Projeler
Servlet
Git
Maven
Design Patterns
DevOps
Linux
Spring Jdbc Template
RabbitMQ
JDBC
PrimeFaces
Manset
Google
Spring
Spring MVC
Spring Cloud
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Java SE
Tanıyalım
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale