Junior
შესაძლებელია თუ არა სტრინგების გამოყენება Java-ს switch კონსტრუქციაში?
sobes.tech AI
პასუხი AI-სგან
ඔව්. Java 7 සිට ආරම්භව, switch ප්රකාශනයේ String වර්ගයේ වස්තු භාවිතා කළ හැක.
// String භාවිතා කිරීමේ උදාහරණයක්
String status = "ACTIVE";
switch (status) {
case "ACTIVE":
System.out.println("තත්ත්වය: සක්රීය");
break;
case "PENDING":
System.out.println("තත්ත්වය: ඉන්තිරිය");
break;
case "DELETED":
System.out.println("තත්ත්වය: මකන ලදි");
break;
default:
System.out.println("අනෙකුත් තත්ත්වයක්");
}
switch තුළ string භාවිතා කිරීමේදී වැදගත් කරුණු:
- String සසඳීම
equals()ක්රමය භාවිතා කර සිදු වේ, එය ප්රාථමික වර්ග සසඳීමට වඩා කාර්යක්ෂම නොවේ. caseතුළ හෝswitchහි අගයnullනම්,NullPointerExceptionඑකක් එයි. එවැනි අවස්ථාswitchමූලින් හෝdefaultබ්ලොක් තුළ සැලකිය යුතුය.caseතුළ string ස්ථිරයන් විය යුතුය.- අකුරු විශේෂත්වය වැදගත් වේ. "Active" සහ "active" වෙනස් වේ.
switch තුළ string භාවිතා නොකරන්නට විකල්ප:
if-else if: ඉතා පැහැදිලි විකල්පය.Enum: සීමිත සංඛ්යාත අගයන් සඳහා වඩාත් සුදුසු. වර්ග ආරක්ෂාව සහ කේත කළමනාකරණය වඩා හොඳ කරයි.
// Enum භාවිතා කිරීමේ උදාහරණයක්
public enum Status {
ACTIVE, PENDING, DELETED
}
// ...
Status currentStatus = Status.ACTIVE;
switch (currentStatus) {
case ACTIVE:
System.out.println("තත්ත්වය: සක්රීය");
break;
case PENDING:
System.out.println("තත්ත්වය: ඉන්තිරිය");
break;
case DELETED:
System.out.println("තත්ත්වය: මකන ලදි");
break;
default:
System.out.println("අනෙකුත් තත්ත්වයක්"); // සාමාන්යයෙන් අවශ්ය නොවේ
}
Map: String සහ ක්රියා මැද ඇති සම්බන්ධතා වඩා ගතික හෝ විශාල නම් ප්රයෝජනවත් විය හැක.
// Map භාවිතා කිරීමේ උදාහරණයක්
Map<String, Runnable> actions = new HashMap<>();
actions.put("ACTIVE", () -> System.out.println("තත්ත්වය: සක්රීය"));
actions.put("PENDING", () -> System.out.println("තත්ත්වය: ඉන්තිරිය"));
actions.put("DELETED", () -> System.out.println("තත්ත්වය: මකන ලදි"));
// ...
String status = "ACTIVE";
actions.getOrDefault(status, () -> System.out.println("අනෙකුත් තත්ත්වයක්")).run();
මෙම ආකෘති අතර තේරීම විශේෂ කාර්යය, කේතය කියවීමේ පහසුව, සහ වර්ග ආරක්ෂාව අවශ්යතාවය මත පදනම් වේ. සීමිත හා ස්ථිර string අගයන් සඳහා Enum සාමාන්යයෙන් හොඳම විසඳුම වේ.