在Java中创建方法

在Java中创建方法,java,Java,a如何将案例1的内容放入方法并调用它 请参阅下面的代码片段: Teacher jane = new Teacher("jane"); Teacher alex = new Teacher("alex"); Set<Teacher> teachers = new HashSet<Teacher>(); teachers.add(jane); teachers.add(alex); int selection = scan.nextInt(); switch

a如何将案例1的内容放入方法并调用它

请参阅下面的代码片段:

 Teacher jane = new Teacher("jane");
 Teacher alex = new Teacher("alex");

 Set<Teacher> teachers = new HashSet<Teacher>();
 teachers.add(jane);
 teachers.add(alex);

 int selection = scan.nextInt();
 switch (selection) {
     case 1:
         for (Teacher teacher : teachers) {
             System.out.printf("%s ", teacher.getName());
         }
         break;
 }
教师简=新教师(“简”);
alex教师=新教师(“alex”);
Set teachers=newhashset();
加上(简);
教师。添加(alex);
int selection=scan.nextInt();
开关(选择){
案例1:
适用于(教师:教师){
System.out.printf(“%s”,teacher.getName());
}
打破
}
请注意,
中断
未包含在函数中。函数将无法访问
case
语句的范围,因此
break
将不起任何作用。确保函数调用之后有
break

另外要指出的是我在函数中使用的类型。我使用了一个
集合
。马特·鲍尔使用了一个
Iterable
。为了便于比较,我将保留我的,但是使用
Iterable
是最好的!原因是所有集合类型都实现了
Iterable
接口。在函数内部,我们只是在集合上迭代。因此,更通用的Iterable是参数的最佳类型选择。

方法:

public void printTeachers(set<Teacher> teachers){
  for (Teacher teacher : teachers) {
    System.out.printf("%s ", teacher.getName());
  }
}
公共教师(设置教师){
适用于(教师:教师){
System.out.printf(“%s”,teacher.getName());
}
}
其他代码:

Teacher jane = new Teacher("jane");
Teacher alex = new Teacher("alex");

Set<Teacher> teachers = new HashSet<Teacher>();
teachers.add(jane);
teachers.add(alex);

int selection = scan.nextInt();
switch (selection) {
    case 1:
        printTeachers(teachers);
        break;
教师简=新教师(“简”);
alex教师=新教师(“alex”);
Set teachers=newhashset();
加上(简);
教师。添加(alex);
int selection=scan.nextInt();
开关(选择){
案例1:
版画教师(教师);
打破
声明:

void printNames(Iterable<Teacher> teachers) {
    for (Teacher teacher : teachers) {
        System.out.printf("%s ", teacher.getName());
    }
}

请参阅Oracle的Java教程。使用您的
“IDE->Refactor->Extract方法”
,顺便提一下,我向您推荐一本Martin Fowler和Kent Beck撰写的关于这一主题的书——《重构:改进现有代码的设计》。@GETah,如果他不能手动完成这项工作,您真的认为他正在使用一个成熟的IDE吗?:)
Teacher jane = new Teacher("jane");
Teacher alex = new Teacher("alex");

Set<Teacher> teachers = new HashSet<Teacher>();
teachers.add(jane);
teachers.add(alex);

int selection = scan.nextInt();
switch (selection) {
    case 1:
        printTeachers(teachers);
        break;
void printNames(Iterable<Teacher> teachers) {
    for (Teacher teacher : teachers) {
        System.out.printf("%s ", teacher.getName());
    }
}
switch (selection) {
     case 1:
         printNames(teachers);
         break;