我正在努力理解sun.misc.Unsafe的文档 - 我想因为它不适合一般用途,没有人真的为让它可读而烦恼 - 但实际上我真的需要一种方法来找到一个元素的地址一个数组(以便我可以将指针传递给本机代码).有没有人有任何工作代码这样做?它可靠吗?
如果我使用以下Spring XML配置,如果将结果bean分配给多个属性,结果会是什么?
<util:list id="myBeanId" scope="prototype">
<bean class="com.mypackage.MyTestBeanClass1" />
<bean class="com.mypackage.MyTestBeanClass2" />
</util:list>
Run Code Online (Sandbox Code Playgroud)
据我所知,有两种可能的结果:
那么,这个场景怎么样?
<bean id="referencedBean" class="com.mypackage.MyTestBeanClass1" />
<util:list id="myBeanId" scope="prototype">
<ref bean="referencedBean" />
<bean class="com.mypackage.MyTestBeanClass2" />
</util:list>
Run Code Online (Sandbox Code Playgroud)
这似乎提供了额外的可能性:
referencedBean
仍然单身,但多个实例MyTestBeanClass2
被创建.referencedBean
和MyTestBeanClass2
被复制的创建的列表中的每个实例(这在我看来是不太可能的,但仍然可行).我似乎无法在春季文档中找到任何关于此的讨论.事实上,据我所知,在文档中甚至没有提到util:list中scope属性的存在.我错过了,还是完全没有记录?如果可以/我应该依赖任何特定的行为?
我有一个库,用于几个不同的eclipse项目(我保存在不同的工作区),其中一些是Java EE项目(即动态Web项目),一些是普通的Java项目.因此,它存在于多个工作空间中(引用共享的subversion存储库以保持副本同步).
为了正确地为Web项目导出库的依赖项,我将它引用的jar文件添加到项目的部署程序集选项卡中,路径为"../"(使用部署程序集中的Java Build Path Entries选项)标签).这非常适用于Web项目,但是当我在没有Web项目的工作区中打开项目时,我收到以下警告:
Projects must be referenced by an EAR or a WAR to use classpath publish/export dependencies whose runtime path (../) maps into the parent component.
Run Code Online (Sandbox Code Playgroud)
是否有一种方法可以禁用此警告,因为在我使用普通Java项目时,发布/导出依赖项基本上无关紧要?
我正在尝试从定义为使用RFC1123兼容日期时间规范的数据源解析时间戳.我的代码是:
value = Instant.from (DateTimeFormatter.RFC_1123_DATE_TIME.parse (textValue));
Run Code Online (Sandbox Code Playgroud)
这适用于某些数据,但我得到包含区域名称的字符串的例外,甚至是RFC2822中定义的字符串(由于它废弃RFC822而间接引用RFC1123).例子:
java.time.format.DateTimeParseException: Text 'Sun, 20 Aug 2017 00:30:00 UT' could not be parsed at index 26
java.time.format.DateTimeParseException: Text 'Mon, 21 Aug 2017 15:00:00 EST' could not be parsed at index 26
Run Code Online (Sandbox Code Playgroud)
我如何说服DateTimeFormatter
接受这种类型的约会?
我需要使用Java(在Android上)和SJCL加密和解密数据(我可以合理地切换到另一个JS加密库,但我熟悉SJCL,所以如果可能的话,我更愿意坚持使用它).
我的SJCL端工作正常,但在Java端,我不确定我需要使用哪些参数来设置密钥生成器和密码.我到目前为止解密的代码是:
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
KeySpec spec = new PBEKeySpec(password.toCharArray(), salt, 1024, 256);
SecretKey tmp = factory.generateSecret(spec);
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, secret, new IvParameterSpec(iv));
String plaintext = new String(cipher.doFinal(ciphertext), "UTF-8");
return plaintext;
Run Code Online (Sandbox Code Playgroud)
salt,iv和ciphertext从SJCL生成的JSON对象中提取为字符串,然后使用Base64解码器解码为字节数组.
不幸的是,我有一些问题,上面的代码不起作用.
我遇到的第一个问题是PBKDF2WithHmacSHA256似乎不是一个公认的密钥生成算法.我不完全确定这是我想要的,但它似乎是基于阅读SJCL文档?Java确实识别了PBKDF2WithHmacSHA1,但这似乎与SJCL实现的算法不同.
其次,如果我尝试使用SHA1密钥算法,我会收到有关无效密钥大小的错误.我是否需要安装一些能够启用带有256位密钥的AES?告诉密钥工厂生成128位密钥可以正常工作(尽管显然与使用256位密钥的SJCL不兼容).
第三,我应该使用什么密码模式?我很确定CBC是不对的... SJCL的文档提到了CCM和OCB,但Java似乎并不支持这些开箱即用 - 再次,我是否需要安装一些东西来使这项工作?SJCL默认哪一个?
最后,即使我选择让Java不抱怨丢失算法的参数,它也会抱怨通过解码SJCL输出提供的IV是错误的长度,它当然看起来是:结果输出中有17个字节,而不是16显然需要AES.我只是忽略了最后一个字节吗?
当Android的StrictMode检测到泄露的对象(例如活动)违规时,如果我能够在那个时刻捕获堆转储将会很有帮助.但是,没有明显的方法来配置它来执行此操作.有没有人知道可以用来实现它的一些技巧,例如说服系统在死刑被调用之前运行一段特定代码的方法?我不认为StrictMode会抛出异常,所以我不能使用这里描述的技巧:有没有办法让Android进程在OutOfMemoryError上产生堆转储?
我有一个带有以下 JSP 标记的页面:
<c:set var="task" value="${report.taskMap['bin:'.concat(bin.id)]}" />
Run Code Online (Sandbox Code Playgroud)
这工作正常,但 Eclipse 抱怨它是一个语法错误,大概是因为 '.concat(bin.id)' 部分是旧版本的 JSP 不支持的 JSP 2.2 扩展。有没有办法告诉 Eclipse 接受这种语法?或者,有没有办法告诉 Eclipse 不要将 JSP 验证错误视为错误,而是将它们标记为警告?我宁愿不完全关闭验证——它很有用——但是将项目标记为包含错误会导致进一步的各种问题。
我在Haskell中寻找一个函数或运算符,它实际上是一个运算符的Monad
等价物,它应用了一个monadic动作而不是一个裸函数,而不是这个:Applicative
<*>
(<*>) :: Applicative f => f (a -> b) -> f a -> f b
我正在寻找看起来像这样的东西:
... :: Monad m => m (a -> m b) -> m a -> m b
我无法相信这不是一个标准功能,但我看不到任何匹配的东西.我错过了什么吗?
参考Clip-path not work in SVG sprite 的问题,我们似乎无法用来style="display:none"
隐藏定义将在其他地方使用的剪辑路径的 SVG 元素。
然而,建议的隐藏它的替代方案(使用width="0" height="0"
)对我来说不起作用(至少在Chrome中,SVG元素仍然在页面布局中获得分配的空间,这会导致出现垂直滚动条,因为我有一个divheight="100%"
它上面)。还有什么其他方法可以隐藏 SVG 并且不会阻止其用于剪切?
我正在尝试配置electron-webpack的渲染器构建设置,以便它们在nodeIntegration
设置为false 的浏览器窗口中工作.这意味着节点API不可用,这会导致以下问题:
webpack似乎假设有一个require
已经可用的实现,因此不包括它自己在生成的bundle中,而只是简单地添加捆绑的定义module.exports
(导致module
加载bundle时未定义的错误)
html-webpack-plugin
正在用于生成index.html文件,并<script>require("source-map-support/source-map-support.js").install()</script>
在加载包之前添加到输出.此行需要在捆绑加载行之后移动,但看不到任何方法.
我尝试在我的设置中设置以下内容package.json
:
"electronWebpack": {
"renderer": {
"webpackConfig": "renderer.additions.webpack.js"
}
}
Run Code Online (Sandbox Code Playgroud)
包含以下renderer.additions.webpack.js
文件:
module.exports = {
target: 'web', // node integration is turned off, so use standard web settings.
externals: ['electron'] // do not rely on ability to load code externally: only specifically known-preloaded modules are to be excluded from the package
}
Run Code Online (Sandbox Code Playgroud)
但这似乎没有改变任何东西.有任何建议如何使这项工作?