如何更新非通用代码使其成为通用?

时间:2013-06-29 13:24:33

标签: java generics generic-programming generic-collections

目前,管理一些算法,这些算法对Student对象集执行一组正常操作。

我想让这些算法具有通用性,以便我们可以在其他像Object这样的对象上执行这些操作。

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

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

3 个答案:

答案 0 :(得分:0)

你的问题不清楚。如果您在Set<Object>中表示泛型,那么如果您可以在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;
    }
}

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

答案 1 :(得分: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

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

答案 2 :(得分:-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

  }

    }

这只是一个例子,但它取决于你的实际要求你想要达到的目标。