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)
请不要专注于这个特定的例子,我只展示了我希望能够实现的功能类.
几年前,我遇到了使用jXLS
和创建大型Excel文件的问题POI XSSF
.如果我的记忆是正确的,我认为XSSF
会在磁盘上创建类似1GB +临时文件的内容来创建10mb excel文件.所以我停止使用jXLS
,而是用来SXSSF
创建excel文件,但今天我有新的理由使用jXLS
或JETT
.
无论jXLS
和JETT
网站似乎暗示,业绩要好得多,但POI
的XSSF
网站仍然表示一般的XSSF
要求更高的内存占用.我想知道这些更高的内存占用量是否像现在合理的10%开销,或者它仍然像几年前的10,000%开销一样.
POI 3.9修复了疯狂的坏内存问题XSSF
吗?我应该不用担心使用它jXLS
或JETT
?还是有某些难以避免的陷阱?重用细胞样式我很小心.
我通过以下方式“强制” 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对本机身份验证的支持将无济于事。)