小编ggr*_*ery的帖子

接口中的Java泛型

我遇到了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符号"不会覆盖超类型方法".

有人能帮我一下吗?我的语法不正确还是我对泛型有点了解?任何帮助是极大的赞赏!

java generics interface

3
推荐指数
1
解决办法
698
查看次数

Java枚举:返回String以外的值

我无法在任何地方找到这个问题的答案,所以我希望有人可以帮助我.我期待我所要求的是不可能的,但我想确认一下.首先,一个枚举例子......

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)

我认为第二种方式看起来更清晰,并且会使我的代码更具可读性.有任何想法吗?任何帮助深表感谢.提前致谢!

java enums

0
推荐指数
1
解决办法
2581
查看次数

使用多个SET-WHERE对进行更新

我有一个关于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)

我在网上发现了多篇关于根据列当前值将列设置为某个值的文章,但不仅仅是设置包含值的特定列.任何帮助是极大的赞赏.

sql

0
推荐指数
1
解决办法
1259
查看次数

标签 统计

java ×2

enums ×1

generics ×1

interface ×1

sql ×1