[英]How to create an interface for any service in Spring Boot
我希望后端中的所有Service
類都具有 CRUD 方法。
為此,我想到了創建一個界面:
public interface ServiceCRUD {
public Object save(Object object);
...
}
然后在我的服務上,實現它:
@Service
public class SampleService implements ServiceCRUD {
@Autowired
private SampleRepository repository;
@Override
public Sample save(Sample sample) {
return repository.save(sample);
}
...
}
I haven't touched Java in a while, but if I recall correctly, every object extend Object
, so why is it that I can't use Object to have the service accept all the entities I might have?
此致
您可以使用Generics
實現這樣的場景
interface ServiceCRUD {
public < E > void save(E object);
}
class Sample {
private String name = "Joe";
@Override
public String toString() {
return "hello"+name;
}
}
class SampleService implements ServiceCRUD {
@Override
public < Sample > void save(Sample sample) {
System.out.print(sample.toString());
}
}
public class Main {
public static void main(String[] args) {
new SampleService().save(new Sample());
}
}
這只是一個示例,您可以根據您的用例對其進行擴展。 在這里工作
您的界面聲明可以保存Object
,即任何 object。 但是您的實現聲明它 cat get only Sample
,這就是您收到編譯錯誤的原因。 您應該使用遺傳 go 並讓每個實現聲明它可以處理哪種 object。 我強烈建議看看 spring 數據項目。 如果時間會節省很多
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.