我有2个类只是称它为“Stuff”和“Customer”,这些类基于我的数据库表(JDBC)并且有抽象类,因为这2个类具有相同的几个属性(Id,Name),我的抽象类包含(Id,Name,以及来自Id和Name变量的setter和getter)。
我正在创建另外两个类(“ExecuteStuff”和“ExecuteCustomer”),其目标是执行查询以操作数据库中的数据,因为这种情况“ExecuteStuff和ExecuteCustomer”类应该有方法insert,update,删除和显示操作和显示来自我的数据库的数据,因为“ExecuteStuff”和“ExecuteCustomer”需要一个相同的方法来处理来自我的数据库的数据,我决定创建我自己的名为“myData”的接口,其中包含4个mehod(类“ExecuteStuff”和类“ExecuteCustomer”的insertData(),updateData(),deleteData()和showData())。
我的问题是,我应该在我的界面“myData”中的方法内使用什么类型的数据,例如= public int insertData(Stuff stuff); 此方法适用于“ExecuteStuff” “但不是”ExecuteCustomer“,因为”ExecuteStuff“和”ExecuteCustomer“具有不同的对象类型。
或者是解决这个问题的优雅方式。
答案 0 :(得分:0)
如果我理解正确,您可以在界面中使用通用类型。这样,传入的参数的数据类型就不重要了。
这是一个解释泛型的链接:
https://docs.oracle.com/javase/tutorial/java/generics/types.html
另一种解决方案是使用:
public int insertData(Object obj);
因为Stuff和Customer都是对象。
希望我能够提供帮助!
答案 1 :(得分:0)
您可以使用通用参数:
interface MyData {
public <T> T insertData(T data);
}
类示例:
class MyCustomClassThat implements MyData{
@Override
public <T> T insertData(T data) {
return data;
}
}
这使得insertData方法接受任何类。然后你可以随意操作它。最后,我们返回最初呈现的对象;以防您对数据对象本身进行操作。