我的目标是根据枚举返回一个方法.目前,我已经创建了一个工厂,但它使用的是我不喜欢的开关盒.代码工作正常但我想使用更好的模式并替换当前的开关案例.你如何设计这个没有任何开关案例或如果否则(实例)......
我还试图在枚举中实现一个Stategy模式.但是无法自动装配bean.
请参阅下面的我目前的代码.
public enum Car {
AUDI, FORD;
}
Run Code Online (Sandbox Code Playgroud)
public class SuperCar{
private Car car;
}
Run Code Online (Sandbox Code Playgroud)
public class Audi extends SuperCar{
// some other properties
}
Run Code Online (Sandbox Code Playgroud)
public class Ford extends SuperCar{
// some other properties
}
Run Code Online (Sandbox Code Playgroud)
@Service
public class AudiService{
public void save(Audi audi){
// some code
}
}
Run Code Online (Sandbox Code Playgroud)
@Service
public class FordService{
public void save(Ford ford){
// some code
}
}
Run Code Online (Sandbox Code Playgroud)
@Service
public class CarFactory{
private FordService fordService;
private AudiService audiService;
public CarFactory(FordService fordService, AudiService audiService) {
this.fordService …Run Code Online (Sandbox Code Playgroud) 我想创建一个Map<String,List<A>>A包含B 的地方,groupby由B的属性创建.
public class A{
private int a;
private ...
private B b;
}
public class B{
private String name;
private ...
}
Run Code Online (Sandbox Code Playgroud)
我有一个
List<A> alist;
Run Code Online (Sandbox Code Playgroud)
我想做那样的事情:
Map<String, List<A>> resultmap = alist.stream().collect(Collectors.groupingby(B::getName()));
Run Code Online (Sandbox Code Playgroud)
除了这是不可能访问B.