我有这个函数,有一些死的代码,由Eclipse标记.
我有两行检查a&b.检查b的行标记为空.
public int[] runThis(List<Integer> buildIds, List<Integer> scenarios, boolean oflag) {
int rating[] = new int[scenarios.size()];
if(buildIds == null) {
System.out.println("ERROR - Building ID list is null!");
return null;
}
if(scenarios == null) {
System.out.println("ERROR - Scenario list is null!"); //dead
return null; //dead
}
return rating;
}
Run Code Online (Sandbox Code Playgroud)
为什么Ellipse让这两条线死了?有帮助吗?非常感谢你花时间陪伴.
这是Java代码:
public static boolean anyEqual(Object needle, Object... haystack) {
if(needle == null || haystack == null) {
return false;
}
if(haystack.length == 0) {
return false;
}
for(Object match : haystack) {
if(match != null && needle.getClass() == match.getClass() && needle.equals(match)) {
return true; // warning from IntelliJ here, 'contract clause !null, null -> false is violated'
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么要显示它?contract clause !null, null -> false is violated?谢谢!
IntelliJ 14.0.2 build:139.659
截图: 
我从Azure App Service下载了一个分析会话.我在Visual Studio中打开它来观察为什么我的应用程序需要很长时间来处理请求.VS没有向我显示我的任何代码,我担心它会将其标记为"[Broken]".有没有办法来解决这个问题?以某种方式导入我的符号(我假设)?
谢谢你的帮助!
我正在尝试使用最新的JDOM包生成XML文档.我遇到了根元素和命名空间的问题.我需要生成这个根元素:
<ManageBuildingsRequest
xmlns="http://www.energystar.gov/manageBldgs/req"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.energystar.gov/manageBldgs/req
http://estar8.energystar.gov/ESES/ABS20/Schemas/ManageBuildingsRequest.xsd">
Run Code Online (Sandbox Code Playgroud)
我用这个代码:
Element root = new Element("ManageBuildingsRequest");
root.setNamespace(Namespace.getNamespace("http://www.energystar.gov/manageBldgs/req"));
Namespace XSI = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
root.addNamespaceDeclaration(XSI);
root.setAttribute("schemaLocation", "http://www.energystar.gov/manageBldgs/req http://estar8.energystar.gov/ESES/ABS20/Schemas/ManageBuildingsRequest.xsd", XSI);
Element customer = new Element("customer");
root.addContent(customer);
doc.addContent(root); // doc jdom Document
Run Code Online (Sandbox Code Playgroud)
但是,ManageBuildingsRequest之后的下一个元素也具有默认命名空间,这会破坏验证:
<customer xmlns="">
Run Code Online (Sandbox Code Playgroud)
有帮助吗?感谢您的时间.
所以,据我所知,应该总是编程到一个接口,如:
List<Integer> list = new LinkedList<Integer>();
Run Code Online (Sandbox Code Playgroud)
所以,在我的课程后期,我有:
public List<Integer> getIntegers() {
return list;
}
public void processIntegers() {
// I need an arraylist here
ArrayList<Integer> list = (ArrayList<Integer>) getIntegers(); // can I do this better, without a cast?
}
Run Code Online (Sandbox Code Playgroud)
我可以在这里遵循更好的模式,或者以某种方式做些什么来避免演员表演?在这种情况下,施法似乎非常难看.
谢谢.
我有一个包含物品ID和物品价格的表.我正在运行Oracle.我想得到价格最高的ID(s).
这适用于MySQL,但不适用于Oracle(为什么不呢!?!?).
SELECT Main.itemid
FROM Main
HAVING MAX(Main.itemprice)
Run Code Online (Sandbox Code Playgroud)
因为我将在另一个嵌套查询中使用它,所以我需要使用它HAVING.有任何想法吗?谢谢!
顺便说一句,产生这个错误:
ORA-00920: invalid relational operator
Run Code Online (Sandbox Code Playgroud) 我有点理解基本的SAML身份验证应该如何工作:
SP
SP的用户请求资源向IDP发送auth请求IDP对
用户进行身份验证,并向userP发回一些userId
SP发送属性查询以获取有关userId的其他详细信息
IDP发送回属性
SP提供用户资源
我的问题是,你能绕过AttributeQuery吗?当我向我的测试Gluu/Shibboleth服务器发出SAML 2.0请求时,我回来了givenName(名字)和sn(姓氏).无论如何我可以inum在AuthnRequest中请求用户ID和电子邮件吗?
我的要求非常简单:
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="MyPrefix1457456412304" Version="2.0" IssueInstant="2016-03-08T17:00:12Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST">
<saml:Issuer>me.com</saml:Issuer>
</samlp:AuthnRequest>
Run Code Online (Sandbox Code Playgroud)
请求我回来是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" ID="_bff09cf745ea5722aac3f3ec57c0ecf3" IssueInstant="2016-03-08T17:01:06.140Z" Version="2.0">
<saml2:Issuer ....
<saml2:AttributeStatement>
<saml2:Attribute FriendlyName="sn" Name="urn:oid:2.5.4.4" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">User</saml2:AttributeValue>
</saml2:Attribute>
<saml2:Attribute FriendlyName="givenName" Name="urn:oid:2.5.4.42" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Admin</saml2:AttributeValue>
</saml2:Attribute>
</saml2:AttributeStatement>
</saml2:Assertion>
Run Code Online (Sandbox Code Playgroud)
我阅读了规范的相关部分,似乎说服务器可以回馈它想要的任何东西(以及它想要多少属性)?同样,我的问题是我是否可以强制SAML Gluu/Shibboleth服务器将特定属性作为AuthnRequest的一部分返回给我.
我正在尝试遵循以下规范来验证 SAML 响应的签名:https : //www.w3.org/TR/xmldsig-core/#sec-PKCS1
这是我的工作流程:我收到 SAML 响应。我摆脱了签名信封,将其规范化,检查摘要,然后检查签名。我能够成功计算转换后的 SAML 响应的 SHA1 摘要并对其进行验证。然而,RSA-SHA1 签名检查仍然让我望而却步。
SAML 响应包括签名方法算法:http : //www.w3.org/2000/09/xmldsig#rsa-sha1
我有这个方法来检查签名:
public static boolean verifySignature(String signatureType, PublicKey publicKey, byte[] contentBytes, byte[] sigBytes) {
try {
Signature sig = Signature.getInstance(signatureType);
sig.initVerify(publicKey);
sig.update(contentBytes);
return sig.verify(sigBytes);
} catch (Exception e) {
Logger.log(e);
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我做这样的事情来称呼它:
String publicKeyStr = "MIIDNDCCAhwCCQCEk14scLMSGjANBgkqhkiG9w0BAQsFADBcMR8wHQYDVQQDDBZhdXRoLnJldHJvZmljaWVuY3kuY29tMQ4wDAYDVQQKDAVSZXRybzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1BMQ8wDQYDVQQHDAZCb3N0b24wHhcNMTYwMzAyMTU1NTQ4WhcNMTcwMzAyMTU1NTQ4WjBcMR8wHQYDVQQDDBZhdXRoLnJldHJvZmljaWVuY3kuY29tMQ4wDAYDVQQKDAVSZXRybzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1BMQ8wDQYDVQQHDAZCb3N0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDwUlZ+qOA61kYh0MGHKTe4JtSL1qJVT/8/i6sWFqbAiGdV33pxSm8iBpqLNPG+fr8aZKugik8mN3y0kZEDwD+EATXGUpqT1v1R6Wr4rRUwsC0wl6d6EiWfdSsu66T11hdrugXF/psjyy4mmvIMMU4RlSaZmT2+gpe57IWPO522Y1HqbuvSvKJgjdyrlhIKLmw7HvZ1ZrQ1j01Hd3/rdK41+zWpSCLuSellHowiDmOzNnyFpTw+SZA0GKE+cm3BOTj/cM36GR2XJd0kIRqj1qqu29cGMlBjQ3cMleG6HoHR9oPNFwYtW1fDTHG6MnxRXYCfZiPeBdX3eBDSuz7GQAv5AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAEuQEPhpWdAGg46PSbE20bNt4YH+PjiIzPaXzN5UmpJjyl2kbR18HYXZHEtAXc+ItrYnK+oe+6FhwJ9aiwlrf1/p+U61iyvA9/HWzyW4vflaLWRQ8FxNhAJiVu57IQObjZ13EQfu1O8RK4wzNUVJhOz+pp9toqTHn8wmUPApzqMIl0KpDCPy1TNrwItaiy/gzWQngBMgIcrDeycR8wK2EH6txT8BzI+aqdIc3gBXsn/kS90lelbvYreXqF7VHoMs8fVEPN5fTRjqT9oZb60b1DxcniiTEknZtqprYuMpgEzpOHrzmlbCoNU2yBHuNTQWBz3lG+XtSMtgh16v5Vm48ag=";
PublicKey publicKey = Security.getPublicKey(publicKeyStr); // uses Certificate class
String sig = "QfAcRJM2P65JucyBpqn6j48/zd1oSLPBJ0lYI1grH5/xenwBEh0D4Eh0S1J3535OUmldpW7D+G7DW6eAT5N8TdoqUvMXuIAUpFHHDR45KZykPXJPUtli+z2rwlCCHypZWnniT/wrcQYdpp1zzNJBBtKdkaqQg0NMktPSQ/0ti+ruMI3qwfTaL9kDQ3Zyi/a2J3RCAPA0RfviLnDLlid0PthiV1NEbs0AvnguDi57fWXAILk0L1Cx20sliQckxlFQ9u4OaHeMscXdjh3SfESkM9m0Y9PppisZWTrCYzGmvDwsZTCBPD3f/ZFIit+Smgh2fi1u8/gZq0yizPyacR3Y/A==";
String newXMLToOperateOn = "<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xs="http://www.w3.org/2001/XMLSchema" ID="_420cc1a25a3890bd5df1f4c04bd7e986" ...";
boolean sign = …Run Code Online (Sandbox Code Playgroud) java saml shibboleth digital-signature public-key-encryption
我需要将 Excel 文档嵌入到 Word 文档中。我使用了这个问题的答案 -> How can I embed any file type into Microsoft Word using OpenXml 2.0;
一切正常,除了:
DrawAspect = OVML.OleDrawAspectValues.Icon允许您通过打开新的 Excel 实例来编辑 Excel 对象。但是,当我编辑数据时,它不会在Word文档中更新。
DrawAspect = OVML.OleDrawAspectValues.Content允许您直接在 Word 文档中编辑 Excel 对象。
我的问题是,我必须在代码中更改哪些内容,以便我可以在新实例中编辑 Excel 对象并将其正确反映在 Word 文档中?我尝试了一切都无济于事。
有件事告诉我,DrawAspect = OVML.OleDrawAspectValues.Icon该对象充当图标,并且更改无法正确反映在该图标中。
读一本书,这个代码出现了:
public class Test {
private static boolean ready = false;
private static int number = 0;
public static class ListenerThread extends Thread {
public void run() {
while(!ready) {
Thread.yield();
}
System.out.println(number);
}
}
public static void main (String[] args) {
new ListenerThread().start();
number = 10;
ready = true;
}
}
Run Code Online (Sandbox Code Playgroud)
笔者相对较快地提到了我感到惊讶的要点.
他们说ListenerThread可能永远不会终止.我想了几天(在我的脑后),我唯一的结论是它可能被ListenerThread缓存.真的吗?将readyvolatile设置为解决问题(因为它不应该再缓存它)?
他们还说该程序可能会打印0.我现在明白Java可能会重新排序指令,因此在更改数字之前准备就绪为另一个线程.有没有任何方法(技术),除了将这些指令放在同步块中解决问题(在中央锁定值上)?我在想也许实现notify()/ wait(),但我觉得它会遭受同样的后果.避免这个问题的最佳方法是什么?
谢谢!
编辑:
我只是觉得我已经阅读了很多代码,并且很少有人为防止在多个线程中重新排序而烦恼.这有多常见?