Guava লাইব্রেরি Java প্রোগ্রামিংয়ে Input Validation সহজ এবং কার্যকর করতে Preconditions ক্লাস সরবরাহ করে। এটি কোডে ইনপুট চেক করার জন্য একাধিক সুবিধাজনক মেথড প্রদান করে, যা IllegalArgumentException, NullPointerException, এবং অন্যান্য ত্রুটি প্রতিরোধে সাহায্য করে।
Preconditions এর ধারণা
Preconditions হলো Guava-এর একটি ক্লাস যা প্যারামিটার চেক করতে ব্যবহৃত হয়। এটি নিশ্চিত করে যে কোনো মেথডে পাস করা ইনপুট বৈধ (valid) এবং প্রয়োজনীয় শর্ত পূরণ করে। Preconditions ব্যবহার করলে কোডের নিরাপত্তা এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি পায়।
Preconditions ক্লাসের প্রধান মেথডসমূহ
checkArgument(boolean expression, String errorMessage)
এই মেথডটি ব্যবহার করে ইনপুট প্যারামিটারের মান সঠিক কিনা তা যাচাই করা হয়। যদি শর্ত মিথ্যা হয়, তাহলে IllegalArgumentException ছোড়া হয়।
import com.google.common.base.Preconditions;
public class CheckArgumentExample {
public static void main(String[] args) {
int age = 15;
// Validate age
Preconditions.checkArgument(age >= 18, "Age must be 18 or above");
}
}
checkNotNull(object, String errorMessage)
এই মেথডটি কোনো অবজেক্ট null কিনা তা যাচাই করে। যদি null থাকে, তাহলে NullPointerException ছোড়া হয়।
import com.google.common.base.Preconditions;
public class CheckNotNullExample {
public static void main(String[] args) {
String name = null;
// Validate name
Preconditions.checkNotNull(name, "Name cannot be null");
}
}
checkState(boolean expression, String errorMessage)
এই মেথডটি একটি অবজেক্টের স্টেট সঠিক কিনা তা যাচাই করে। যদি স্টেট ভুল হয়, তাহলে IllegalStateException ছোড়া হয়।
import com.google.common.base.Preconditions;
public class CheckStateExample {
public static void main(String[] args) {
boolean isLoggedIn = false;
// Validate login state
Preconditions.checkState(isLoggedIn, "User must be logged in");
}
}
checkElementIndex(index, size, String errorMessage)
এই মেথডটি তালিকার (list) ইনডেক্স সঠিক কিনা তা যাচাই করে। যদি ইনডেক্স সঠিক না হয়, তাহলে IndexOutOfBoundsException ছোড়া হয়।
import com.google.common.base.Preconditions;
import java.util.List;
import java.util.Arrays;
public class CheckElementIndexExample {
public static void main(String[] args) {
List<String> items = Arrays.asList("Apple", "Banana", "Guava");
// Validate index
int index = 5;
Preconditions.checkElementIndex(index, items.size(), "Index out of bounds");
}
}
checkPositionIndex(index, size, String errorMessage)
এই মেথডটি একটি পজিশন (position) সঠিক কিনা তা যাচাই করে। এটি checkElementIndex এর মতো, তবে পজিশন চেকের জন্য আরও নির্দিষ্ট।
Preconditions এর সুবিধা
- ত্রুটি প্রতিরোধ: ইনপুট ভ্যালিডেশনের মাধ্যমে কোডের ত্রুটি কমানো যায়।
- কোডের সরলতা: শর্ত চেক করার জন্য কম কোড লিখতে হয়।
- ত্রুটির বর্ণনা: ত্রুটি ঘটলে নির্দিষ্ট এবং স্পষ্ট বর্ণনা প্রদান করা হয়।
- ডিবাগিং সহজ: ইনপুট চেকের কারণে সমস্যা সহজেই চিহ্নিত করা যায়।
Preconditions এর সীমাবদ্ধতা
- অতিরিক্ত প্রসেসিং: প্রতিটি ইনপুট চেক করতে হলে কিছুটা অতিরিক্ত প্রসেসিং প্রয়োজন।
- কাস্টম ভ্যালিডেশন: জটিল বা কাস্টম ইনপুট চেক করার জন্য আলাদা কোড লিখতে হতে পারে।
- রানটাইম চেক: Preconditions শুধুমাত্র রানটাইমে চেক করে, কম্পাইল টাইমে নয়।
Preconditions ক্লাস Java কোডে Input Validation সহজ, দ্রুত এবং কার্যকর করে। এটি নিশ্চিত করে যে মেথডের ইনপুট সঠিক এবং প্রয়োজনীয় শর্ত পূরণ করে। বিশেষত ডেটা-সংশ্লিষ্ট অ্যাপ্লিকেশন বা API উন্নয়নে Preconditions ব্যবহার একটি আদর্শ পদ্ধতি।
Read more