From d50a0d379046b7d5a269015126c45cf1389de0c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Guzm=C3=A1n?= Date: Wed, 8 Jul 2026 18:03:57 -0500 Subject: [PATCH] Refactor FamilyBudget annotation parameters --- Java/Advanced/JavaAnnotations.java | 93 +++++++++++++++--------------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/Java/Advanced/JavaAnnotations.java b/Java/Advanced/JavaAnnotations.java index de86cc7..af75e76 100644 --- a/Java/Advanced/JavaAnnotations.java +++ b/Java/Advanced/JavaAnnotations.java @@ -143,56 +143,57 @@ public static void main(String[] args) { @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @interface FamilyBudget { - String userRole() default "GUEST"; - int budgetLimit() default 0; + String userRole() default "GUEST"; + int budget() default 0; } class FamilyMember { - @FamilyBudget(userRole = "SENIOR", budgetLimit = 100) - public void seniorMember(int budget, int moneySpend) { - System.out.println("Senior Member"); - System.out.println("Spend: " + moneySpend); - System.out.println("Budget Left: " + (budget - moneySpend)); - } - - @FamilyBudget(userRole = "JUNIOR", budgetLimit = 50) - public void juniorUser(int budget, int moneySpend) { - System.out.println("Junior Member"); - System.out.println("Spend: " + moneySpend); - System.out.println("Budget Left: " + (budget - moneySpend)); - } + @FamilyBudget(userRole = "SENIOR", budget = 100) + public void seniorMember(int budget, int moneySpend) { + System.out.println("Senior Member"); + System.out.println("Spend: " + moneySpend); + System.out.println("Budget Left: " + (budget - moneySpend)); + } + + @FamilyBudget(userRole = "JUNIOR", budget = 50) + public void juniorUser(int budget, int moneySpend) { + System.out.println("Junior Member"); + System.out.println("Spend: " + moneySpend); + System.out.println("Budget Left: " + (budget - moneySpend)); + } } public class JavaAnnotations { - public static void main(String[] args) { - Scanner in = new Scanner(System.in); - int testCases = Integer.parseInt(in.nextLine()); - while (testCases > 0) { - String role = in.next(); - int spend = in.nextInt(); - try { - Class annotatedClass = FamilyMember.class; - Method[] methods = annotatedClass.getMethods(); - for (Method method : methods) { - if (method.isAnnotationPresent(FamilyBudget.class)) { - FamilyBudget family = method - .getAnnotation(FamilyBudget.class); - String userRole = family.userRole(); - int budgetLimit = family.budgetLimit(); - if (userRole.equals(role)) { - if(budgetLimit>=spend){ - method.invoke(FamilyMember.class.newInstance(), - budgetLimit, spend); - }else{ - System.out.println("Budget Limit Over"); - } - } - } + public static void main(String[] args) { + Scanner in = new Scanner(System.in); + int testCases = Integer.parseInt(in.nextLine()); + while (testCases > 0) { + String role = in.next(); + int spend = in.nextInt(); + try { + Class annotatedClass = FamilyMember.class; + Method[] methods = annotatedClass.getMethods(); + for (Method method : methods) { + if (method.isAnnotationPresent(FamilyBudget.class)) { + FamilyBudget family = method + .getAnnotation(FamilyBudget.class); + String userRole = family.userRole(); + int budgetLimit = family.budget(); + if (userRole.equals(role)) { + if (spend <= budgetLimit) { + method.invoke(FamilyMember.class.newInstance(), + budgetLimit, spend); + } else { + System.out.println("Budget Limit Over"); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); } - } catch (Exception e) { - e.printStackTrace(); - } - testCases--; - } - } -} \ No newline at end of file + testCases--; + } + in.close(); + } +}