小编Bet*_*033的帖子

Java 8流.所有元素除了其他元素

我有兴趣确定一种方法,该方法返回排除另一个列表中元素的元素列表.

例如

List<Integer> multiplesOfThree = ... // 3,6,9,12 etc
List<Integer> evens = ... // 2,4,6,8 etc
List<Integer> others = multiplesOfThree.except(evens) // should return a list of elements that are not in the other list
Run Code Online (Sandbox Code Playgroud)

你怎么做到这一点?我找到了一种有点笨拙且难以阅读的方法....

multiplesOfThree.stream()
.filter(intval -> evens.stream().noneMatch(even -> even.intValue() == intval.intValue()))
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

15
推荐指数
3
解决办法
1万
查看次数

有没有办法在.Net中创建"自托管"网站?

与WCF Self Hosting相似.

有没有办法在控制台应用程序中创建一个"自托管"的网站dll?

可能是提出这个问题的错误方式,但我想做的是使用这个网站将结果分成网页,而不在其中创建网站IIS.

谢谢.

.net c# iis

13
推荐指数
1
解决办法
9237
查看次数

VB.Net List.Find.将值传递给谓词

使用List.Find与自定义谓词有点麻烦

我有一个功能,这样做

private function test ()
    Dim test As Integer = keys.Find(AddressOf FindByOldKeyAndName).NewKey
Run Code Online (Sandbox Code Playgroud)

这是谓词的功能

Private Shared Function FindByOldKeyAndName(ByVal k As KeyObj) As Boolean
        If k.OldKey = currentKey.OldKey And k.KeyName = currentKey.KeyName Then
            Return True
        Else
            Return False
        End If


    End Function
Run Code Online (Sandbox Code Playgroud)

通过这样做意味着我必须在类中有一个共享的"currentKey"对象,我知道必须有一种方法来传递我对CurrentKey感兴趣的值(即keyname和oldkey)

理想情况下,我想用类似的东西来称呼它 keys.Find(AddressOf FindByOldKeyAndName(Name,OldVal))

但是,当我这样做时,我得到编译器错误.

我如何调用此方法并传入值?

vb.net

10
推荐指数
1
解决办法
3万
查看次数

Oracle获取存储过程的最后修改日期

首先,谢谢大家的帮助.

我试图在oracle(10g)中找到类似于MSSQL的sys.procedures.Modify_date的东西.

一点背景:

我们设计了许多用于oracle和mssql的存储过程.在mssql中很简单,看看哪些存储过程已经更新(因为modify_date会更新).我听说有一些类似于甲骨文的东西,但在intertubes上发现了一些珍贵的东西.我也听到有传言说有些东西很接近,但它包含了sproc的最后编译日期.因为我正在寻找"最后一次有人改变了sproc的文本",这不会有用.

这可能吗?有什么诀窍吗?现在我们在存储过程中维护一个文本注释,其中一个开发人员编写了一个例程来从该注释中提取日期.它很笨拙,很容易忘记,我想找到一个更好的方法.

再次感谢您的帮助.

oracle

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

错误:set访问器的可访问性修饰符必须比属性或索引器更具限制性

我对财产访问者有点困惑.

我想要一个内部属性,其set访问器只能被派生类访问.

这样的事情

internal [internalClass] MyProperty
{
get {return _prop;}
protected set {_prop = value;}
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,编译器抱怨.

MSDN在讨论此特定错误时建议将set访问修饰符更改为private

这不是我想要的地方.

它看起来Protected Internal应该是一个选项,但是使用此修饰符会产生相同的错误

我有一种感觉,我缺少对访问修饰符的一些基本理解.

谢谢

c#

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

WCF客户端切换和故障转移功能的设计模式?

我正在寻找最佳实践或经常使用WCF通信的设计模式,允许进行通信,如果WCF(或初始服务存在),则故障转移到另一个服务或本地信息服务

我不确定这有多大意义所以让我举个例子.我希望这个代理能够连接到wcf服务并(希望)将合同方法暴露给调用者(UI/BO等),以便该对象可以调用这些方法,代理尝试联系主服务(可能是WCF),如果失败则连接到辅助服务.

理想情况下,所有故障转移和重新连接逻辑都将包含在代理中.

是否有一个设计模式封装了"切换wcf客户端进行故障转移"?
也许不是设计模式,任何人都推荐一个体面的方法?

c# wcf

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

使用异步模式时,WCF连接超出最大连接数

我有一个简单的WCF服务,我正在与异步通信.

我不喜欢的是打电话的时候 EndServiceMethod(IASyncResult)

如果我忘记调用该Close()方法,该服务实际上会使连接保持打开状态,然后在wcf达到超时异常的最大并发连接数后,所有剩余的连接都将失败.

我已经尝试将该 [ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)] 属性用于服务合同,这似乎对服务的连接状态没有任何影响.

也许我错误地实现了它?

任何想法或建议.

我正在尝试找到WCF的行为模式,允许客户端发出请求,然后服务器响应请求,然后假设连接已完成并可以终止.

c# wcf

6
推荐指数
1
解决办法
6176
查看次数

Groovy:如何解析xml并保留名称空间和schemaLocations

我正在尝试使用groovy来简单地将节点添加到特定位置.我的源架构看起来像这样

<s1:RootNode
   xmlns:s1="http://localhost/s1schema"
   xmlns:s2="http://localhost/s2schema"
   xsi:schemaLocation="http://localhost/s1schema s1schema.xsd 
   http://localhost/s2schema s2schema.xsd">
 <s1:aParentNode>
  <s2:targetNode>
   <s2:childnode1 />
   <s2:childnode2 />
   <s2:childnode3 />
   <s2:childnode4 />
 </s2:targetNode>
</s1:aParentNode>
</s1:RootNode>
Run Code Online (Sandbox Code Playgroud)

我想简单地添加一个与其他子节点内联的新子节点来进行输出

<s1:RootNode
    xmlns:s1="http://localhost/s1schema"
    xmlns:s2="http://localhost/s2schema"
    xsi:schemaLocation="http://localhost/s1schema s1schema.xsd 
    http://localhost/s2schema s2schema.xsd">
 <s1:aParentNode>    
   <s2:targetNode>
     <s2:childnode1 />
     <s2:childnode2 />
     <s2:childnode3 />
     <s2:childnode4 />
     <s2:childnode5 >value</s2:childnode5>
   </s2:targetNode>
  </s1:aParentNode>
 </s1:RootNode>
Run Code Online (Sandbox Code Playgroud)

为此,我有以下简单的groovy脚本

  def data = 'value'
def root = new XmlSlurper(false,true).parseText( sourceXML )
        root.'aParentNode'.'topNode'.appendNode{
            's2:childnode5' data
        }
groovy.xml.XmlUtil.serialize(root);
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,将删除应用于根节点的名称空间和schemaLocations.和命名空间,但没有将架构位置添加到每个子节点.

这导致下游的验证问题.

我如何简单地处理这个xml.不执行验证并按原样保留xml并添加我指定的命名空间的单个节点?

一个注意事项:我们处理了很多消息,我不会事先知道最外面的命名空间(上例中的s1),但即便如此,我真的只是想看一种技术,它是xml的"笨"处理

谢谢!

java groovy

6
推荐指数
1
解决办法
1669
查看次数

Java 8映射集合,如果集合为空,则添加默认值

我有一个用例,我必须返回一个至少包含1个元素的集合.传入集合可能包含0个或更多元素.

所以这可以很容易地完成

Set<ObjectB> setOfB = collectionOfA.isEmpty() ? 
        new HashSet<ObjectB>() {{ add(new ObjectB()); }}  : 
        collectionOfA
           .stream()
           .map(item -> new ObjectB(item))
           .collect(Collectors.toSet()); 
Run Code Online (Sandbox Code Playgroud)

但....

我也试图利用这个机会更好地熟悉Java 8工具和功能,所以我试着看看是否可以在没有条件测试的情况下以更类似Java 8的方式完成.

非常感谢您的意见和建议!

java java-8

6
推荐指数
1
解决办法
2536
查看次数

ORACLE在Execute Immediate中批处理DDL语句

我正在尝试在一个Execute Immediate语句中运行多个ddl语句.我认为这将是非常直接的,但似乎我错了.

这个想法是这样的:

declare v_cnt number; 

begin 

select count(*) into v_cnt from all_tables where table_name='TABLE1' and owner = 'AMS'; 

if v_cnt = 0 then 

execute immediate 'CREATE TABLE TABLE1(VALUE VARCHAR2(50) NOT NULL)  ALTER TABLE TABLE1 ADD (MYVAL2 NVARCHAR2(10))'; 

end if; 

end;
Run Code Online (Sandbox Code Playgroud)

但是这会导致错误

ORA-00911:无效字符ORA-06512:第10行

如果我自己执行它们,批处理中的每个语句都可以正常运行.如果我接受这个语句并执行它,它将运行良好(使用;在两个语句之间).如果我删除; 在语句之间我得到关于无效选项的不同错误

计划是我将能够构建一个表,导出该表的表模式,包括它的所有alter语句,然后作为安装/更新过程的一部分对另一个系统运行批处理.

那么,我如何在单个执行立即批处理这些DDL语句?或者有更好的方法来做我需要的东西吗?

我必须承认,我有点像甲骨文新手.谢谢大家的耐心等待.

sql oracle oracle10g ora-00911

5
推荐指数
1
解决办法
6288
查看次数

标签 统计

c# ×4

java ×3

java-8 ×2

oracle ×2

wcf ×2

.net ×1

groovy ×1

iis ×1

java-stream ×1

ora-00911 ×1

oracle10g ×1

sql ×1

vb.net ×1