我遇到了Java中的泛型问题,我无法在网上找到以类似方式使用泛型的人的解决方案或示例.我有一组处于相同请求/响应结构中的方法.例如,用户填充Request对象中的字段,将对象传递给辅助方法,然后返回一个Response对象.我的所有请求对象都从一个常见的Request超类扩展(类似地,来自Response超类的Response对象).我希望我的帮助程序类也具有一致的结构,所以我使用了一个接口.这里有一些代码来说明......
要求超级:
public class SuperRequest {
// ...
}
Run Code Online (Sandbox Code Playgroud)
示例请求子类:
public class SubRequest extends SuperRequest {
// ...
}
Run Code Online (Sandbox Code Playgroud)
响应超级:
public class SuperResponse {
// ...
}
Run Code Online (Sandbox Code Playgroud)
示例响应子类:
public class SubResponse extends SuperResponse{
// ...
}
Run Code Online (Sandbox Code Playgroud)
界面:
public interface SomeInterface {
public <T extends SuperRequest, U extends SuperResponse> U someMethod(T request);
}
Run Code Online (Sandbox Code Playgroud)
正如您从界面中看到的,我想传递一个子对象,SuperRequest我想返回一个子对象SuperResponse.这是我的实现:
public class SomeImplementation implements SomeInterface {
@Override
public SubResponse someMethod(SubRequest request) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
在Eclipse中,我得到编译错误,因为编译器告诉我我没有未实现的方法,并且@Override符号"不会覆盖超类型方法".
有人能帮我一下吗?我的语法不正确还是我对泛型有点了解?任何帮助是极大的赞赏!
我无法在任何地方找到这个问题的答案,所以我希望有人可以帮助我.我期待我所要求的是不可能的,但我想确认一下.首先,一个枚举例子......
public enum StatusCode {
SUCCESS(0), GENERAL_ERROR(999), CONNECTION_TIMEOUT_ERROR(1337);
private int statusCode;
private StatusCode(int statusCode) {
this.statusCode = statusCode;
}
public int getStatusCode() {
return statusCode;
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在使用此枚举来强制使用特定的状态代码.我的问题是:有没有办法可以引用StatusCode.SUCCESS并让它返回与之关联的int值?不要过多关于我想做什么的细节,而是采用这个例子:
public String getStatusMessage(int statusCode) {
// Map<Integer, String> that contains status messages
// return String for key statusCode
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,调用此方法的语法是getStatusMessage(StatusCode.SUCCESS.getStatusCode()).
有没有办法缩短这个getStatusMessage(StatusCode.SUCCESS)?
我认为第二种方式看起来更清晰,并且会使我的代码更具可读性.有任何想法吗?任何帮助深表感谢.提前致谢!
我有一个关于SQL语法的问题,以及在单个查询中是否可以执行特定操作.请考虑以下示例:
假设我们有一个Recipe表.每个食谱都有5种成分列在了成分1,成分2等栏目之下.让我们也说突然糖被认为是不健康的,每个食谱都必须用"人造甜味剂"替换每种成分栏中的"糖".我遇到的问题是没有成分表,因此每个成分在字面上列在五列之一,而不是像成分ID那样引用.
如果可能,如何编写以下(伪)查询?
UPDATE Recipe
(SET ingredient1 = 'artificial sweetener' WHERE ingredient1 = 'sugar') OR
(SET ingredient2 = 'artificial sweetener' WHERE ingredient2 = 'sugar') OR
(SET ingredient3 = 'artificial sweetener' WHERE ingredient3 = 'sugar') OR
(SET ingredient4 = 'artificial sweetener' WHERE ingredient4 = 'sugar') OR
(SET ingredient5 = 'artificial sweetener' WHERE ingredient5 = 'sugar')
Run Code Online (Sandbox Code Playgroud)
我在网上发现了多篇关于根据列当前值将列设置为某个值的文章,但不仅仅是设置包含值的特定列.任何帮助是极大的赞赏.