小编Jon*_*uis的帖子

Java泛型对map的键和值强制执行相同的类型

我在找什么:

我正在构建一些在地图的键和值上强制执行类型的东西:有点像Map<Key<X>, Value<X>>.但是,我还想每个键/值条目中强制执行类型匹配,但条目之间,不应强制执行任何类型.

例如,在同一个映射中,这些键/值对应被视为有效:

  • Key<Integer> 映射到 Value<Integer>
  • Key<String> 映射到 Value<String>
  • Key<Double> 映射到 Value<Double>

但是,这样的事情将是无效的:

  • Key<Integer> 映射到 Value<String>
  • Key<Double> 映射到 Value<Boolean>

如何使用Java泛型完成此操作?


我不想要的:

  • 我知道我可以实现类似的东西Set<Pair>,其中pair接受相同类型的Key/Value.但是,按键查看这个不再是一个恒定的时间操作.

  • 我知道我可以做类似的事情,Map<Key<?>, Value<?>> 并断言Key和Value在运行时是相同的类型.但是,我想知道这是否可以严格使用泛型.

java generics map

17
推荐指数
1
解决办法
3745
查看次数

如何使用Google Drive API(Java客户端)对应用程序进行单元测试

使用Google Drive API(Java客户端)对应用程序进行单元测试的最佳方法是什么?

似乎编写的应用程序严重依赖于Drive类,但缺少...

  • 创建一个非常广泛的模拟(它本身可能需要测试),或
  • 根据实际的Drive服务编写集成测试

......如何测试这样的应用程序?

使用像Mockito这样的模拟框架对于Drive API(Java客户端)来说有点乏味,因为Drive Java客户端的使用依赖于进行如此多的链式调用(例如,来自文档):

Drive service = getDriveService(req, resp);
service.files().get(fileId).execute();
Run Code Online (Sandbox Code Playgroud)

java google-drive-api

11
推荐指数
1
解决办法
1874
查看次数

在java中使用子类的Singleton

在java中实现单例的最常用方法是使用私有构造函数和表单的公共访问器方法 -

public class Singleton {
    private static Singleton instance = null;
    private Singleton() {

    }
    public static synchronized Singleton getInstance(){
        if (instance == null) {
        instance = new Singleton();         
        } 
        return instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,由于构造函数是私有的,因此它可以防止对单例进行子类化.我们有什么方法可以创建一个允许子类化的单例吗?

java singleton design-patterns

6
推荐指数
2
解决办法
7410
查看次数