0

目前,管理少数对一组学生对象执行一组正常操作的算法。

我想让这些算法通用,以便我们可以对其他对象(如 Student)执行这些操作。

我在我的遗留代码库中看到,冗余代码可以替换为基于通用的代码。

将非通用代码转换为通用代码的最佳方法/良好做法是什么?

4

3 回答 3

0

你的问题不清楚。如果你的意思是泛型Set<Object>,那么如果你有一个可以在 a 上完成的操作,Set<Object>你可以使用类似的东西:

public <T> void doSomethingOnSet(Set<T> set) {
    for (T item : set) {
       //do something fancy: let's print the first item:
       System.out.println(item);
       return;
    }
}

您的方法现在可以在一组任何类型的对象上调用,而不仅仅是学生。

于 2013-06-29T13:42:08.293 回答
0

在 Java 教程中有一些示例如何将遗留代码转换为使用泛型:

http://docs.oracle.com/javase/tutorial/extra/generics/convert.html

Java Generics FAQ 也有关于处理遗留代码的小节:

http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html#Coping%20With%20Legacy

没有例子很难给你更具体的东西。

于 2013-06-29T14:05:02.053 回答
-1

你的问题很笼统:)。使您的代码通用的一个非常简单但粗略的示例是

public void updateStudent(Student student)
{}

public void updateObject(Object genericObject)
   {

    if( genericObject instanceof Student) 
        // do student specific operation


    if( genericObject instanceof School) 
        // do schoolspecific operation

  }

    }

这只是一个示例,尽管它取决于您想要实现的实际要求。

于 2013-06-29T13:35:22.737 回答