目前,管理一些算法,这些算法对Student对象集执行一组正常操作。
我想让这些算法具有通用性,以便我们可以在其他像Object这样的对象上执行这些操作。
我在遗留代码库中看到,冗余代码可以替换为基于通用的代码。
将非通用代码转换为通用代码的最佳方式/做法是什么?
答案 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
}
}
这只是一个例子,但它取决于你的实际要求你想要达到的目标。