小编Bob*_*ule的帖子

Java是否有办法让非库开发人员使用扩展方法?

C#的扩展方法非常适合添加语法糖.Java扩展方法非常适合允许库开发人员向其接口添加方法.

我是一个非库Java开发人员,并且知道我将从库中获取新功能获得很多好处,但我仍然希望拥有C#扩展方法的语法糖功能.

这是,或者在未来的Java版本中是否可行?

例如:我想在String类中添加方法...

String data = StringUtils.capitalize("abcd");  // instead of this
String data = "abcd".capitalize()  // I would like to do this
Run Code Online (Sandbox Code Playgroud)

请不要专注于这个特定的例子,我只展示了我希望能够实现的功能类.

java extension-methods

8
推荐指数
1
解决办法
112
查看次数

POI XSSF是否还有疯狂的坏内存问题?

几年前,我遇到了使用jXLS和创建大型Excel文件的问题POI XSSF.如果我的记忆是正确的,我认为XSSF会在磁盘上创建类似1GB +临时文件的内容来创建10mb excel文件.所以我停止使用jXLS,而是用来SXSSF创建excel文件,但今天我有新的理由使用jXLSJETT.

无论jXLSJETT网站似乎暗示,业绩要好得多,但POIXSSF网站仍然表示一般的XSSF要求更高的内存占用.我想知道这些更高的内存占用量是否像现在合理的10%开销,或者它仍然像几年前的10,000%开销一样.

POI 3.9修复了疯狂的坏内存问题XSSF吗?我应该不用担心使用它jXLSJETT?还是有某些难以避免的陷阱?重用细胞样式我很小心.

java apache-poi xssf jxls jett

7
推荐指数
1
解决办法
5398
查看次数

HttpClient使用NTLM身份验证提供程序提供协商错误

我通过以下方式“强制” httpclient进行ntlm身份验证:

    PoolingHttpClientConnectionManager connPool  connPool = new PoolingHttpClientConnectionManager();

    Lookup<AuthSchemeProvider> authProviders = RegistryBuilder.<AuthSchemeProvider>create()
            .register(AuthSchemes.NTLM, new NTLMSchemeFactory())                
            .build();

    CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connPool).setDefaultAuthSchemeRegistry(authProviders).build();
Run Code Online (Sandbox Code Playgroud)

但是,在对服务器进行身份验证时,我收到一条烦人的日志消息“不支持身份验证方案协商”。

我如何摆脱此消息?

(这将在Linux机器上运行,因此HttpClient 4.4 JNA对本机身份验证的支持将无济于事。)

java authentication ntlm apache-httpclient-4.x

4
推荐指数
1
解决办法
5976
查看次数