gpt4 book ai didi

java - 在 Java 中使用带有枚举的静态方法

转载 作者:行者123 更新时间:2023-11-29 07:50:28 24 4
gpt4 key购买 nike

我有这个作业,我需要使用静态方法获取学生 ID,然后在该静态方法中评估学生是否通过了他们的类(class)。这对我来说有点挑战,因为静态方法应该只接受一个参数。

这可以通过不将私有(private)变量更改为私有(private)静态变量来实现吗?

非常感谢任何方向。

import java.util.ArrayList;
public class Grade {
public static void main(String[] args) {
ArrayList<GradeDetail> gradeList = new ArrayList<GradeDetail>() ;

System.out.println("Student ID: ");

for(String s : args) {
boolean match = false;

for(GradeDetail grade : GradeDetail.values()) {
if(s.equals(grade.getCode())) {
gradeList.add(grade);

match = true;
}
}

if(!match) {
System.out.printf("unknown student ID entered!");
}
}

System.out.println("Students who passed: ");
//Some function here

System.out.println("Students who failed: ")
//Some function here

return;
}
}

enum GradeDetail {
JOHN (101, 90)
, ROB (102, 50)
, JAMES (103, 55)
;

private final int studentID;
private final int studentGrade;

GradeDetail(int id, int sGrade) {
studentID = id;
studentGrade = sGrade;
}

public int getID() {return studentID;}

public int getGrade() {return studentGrade;}

}

老实说,我不知道该怎么做......

最佳答案

枚举用于静态数据,例如 A、B、C 的成绩值。您永远不会在枚举中存储 transient 值,例如 John 的成绩。为什么不尝试将枚举用于静态值。

enum GradeRange {
A (100, 90),
B (89, 80),
C (79, 70);


private final int high;
private final int low;

GradeRange(int high, int low) {
high = high;
low = low;
}

public GradeRange getGrade(int percent) {
for (GradeRange gradeRange : GradeRange.values() {
if (percent <= high && percent >= low)
return gradeRange;
}
}

}

PS - 我没有测试这段代码

关于java - 在 Java 中使用带有枚举的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21663606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com