TR1引入了shared_ptr,weak_ptr,scoped_ptr和unique_ptr等.
我想知道这些类型之间的各种转换/类型提升规则.
例如,将scoped_ptr分配给shared_ptr时会发生什么?这种转换是否可行/有意义以及此类转换的一些用例是什么?
(具体是否有表格?)
我对drools有一个奇怪的问题:
我有以下规则:
rule "is my dog a baby?"
ruleflow-group "dog"
salience 10
when
dog : Dog(age <1 )
then
dog.setIsBaby(true);
end
rule "baby dog"
ruleflow-group "dog"
salience 9
when
myData : MyData( myDog.isBaby() == false)
then
System.out.println(myData.getMyDog().getIsBaby());
end
Run Code Online (Sandbox Code Playgroud)
我插入我的会话myData和myData.getMyDog(),在哪里myData.getMyDog.isBaby==false
第一条规则被解雇,我的狗将成为一个婴儿.然后第二个被触发,甚至它打印为真.(即使条件是假的)
当我在解决所有规则后进行测试时,myData中的myDog将被设置为婴儿.
我在这做错了什么?为什么第二条规则被解雇了?是会话中的问题(在我的情况下是有状态的)?
我想我需要说我修改了myData:myDog,但我不知道在哪里.
如果不告诉我,希望我的问题很清楚.
我使用sf.json库来映射我的Web应用程序中的传入请求的表单数据.
让我们说传入的请求是http:// localhost:8080/app/addProfile,表单数据为:
formData: {
"name":"applicant Name",
"Age":"26",
"academics":{
"college":"80",
"inter":"67",
"matriculation":"89"
},
"skill":{
"computer":"c,c++,java",
"maths":"limit,permutation,statistics"
},
"dateOfBirth":"09-07-1988"
}
Run Code Online (Sandbox Code Playgroud)
服务器端 :
String requestFormData=request.getParameter("formData");
JSONObject formData = JSONObject.fromObject(requestFormData);
String name= formData.getString("name");
if(name.length>70){
//error message for length validation
}
if(!name.matches("regex for name"){
//error message for name validation
}
...
...
...
Run Code Online (Sandbox Code Playgroud)
这种方法的主要问题是如果结构中有微小的修改JSON,那么整个代码需要修改.
是否有任何API可以配置验证所需的规则?
当我使用重写规则将插入一个表拆分为两个其他表的插入时,其中一个插入值具有默认的nextval('some_sequence'),两个表具有相同的序列,则插入的默认值在两张桌子.这可能是由于重写规则的简单文本替换.我曾希望首先解析默认值,然后将相同的值写入两个表.
这是一个例子(正如你可能猜到的,我正在尝试使用规则实现特化/泛化):
-- first and third commands can be skipped if id is defined as serial
create sequence parents_id_seq;
create table Parents(
id integer default(nextval('parents_id_seq')) primary key,
type varchar(50) not null check(type in ('Child1', 'Child2')),
unique (id, type),
attribute1 varchar(50) not null unique check(length(attribute1) > 0)
);
alter sequence parents_id_seq owned by parents.id;
Run Code Online (Sandbox Code Playgroud)
特定于第一类儿童的数据保留在
create table Partial_Children1(
id integer default(nextval('parents_id_seq')) primary key,
type varchar(50) not null check(type = 'Child1'),
foreign key (id, type) references Parents(id, type),
attribute2 varchar(50) not null …Run Code Online (Sandbox Code Playgroud) 不太确定如何说出这个问题.我想知道是否有一种方法来检查自定义java类的某些部分,看它是否符合某个标准.比如这个
public Name(String forename, String middlename, String surname)
Run Code Online (Sandbox Code Playgroud)
然后当创建该类的实例数组时,
Name[] applicants = new Name[4];
applicants[0] = new Name("john","bob", "rush");
applicants[1] = new Name("joe","bob", "rushden");
applicants[2] = new Name("jack","bob", "rushden");
applicants[3] = new Name("jake","bob", "rushden");
Run Code Online (Sandbox Code Playgroud)
是否可以搜索类的实例
midddlename.equals("bob") && surname.equals("rush")
Run Code Online (Sandbox Code Playgroud)
我并不是在寻找解决方案if(surname.equals("bob")) then else等等
但更多内置的java类允许快速搜索数组.速度非常重要.
这是我之前的问题的后续内容:SO 4403861,因为建议的解决方案打破了依赖关系,使makefile无用.我无法弄清楚为什么.
我正在使用gnu make 3.82我有一个规则,如果已经创建了obj目录:
objdir:=../obj
$(objdir)/%.o: %.C
$(COMPILE) -MM -MT$(objdir)/$(notdir $@) $< -o $(DEPDIR)/$(notdir $(basename $<).d )
$(COMPILE) -o $(objdir)/$(notdir $@ ) -c $<
Run Code Online (Sandbox Code Playgroud)
但是,如果obj目录不存在,则make失败.我希望make能够根据需要自动创建../obj,所以我添加了我认为非常简单的内容:
$(objdir)/%.o: %.C $(objdir)
$(COMPILE) -MM -MT$(objdir)/$(notdir $@) $< -o $(DEPDIR)/$(notdir $(basename $<).d )
$(COMPILE) -o $(objdir)/$(notdir $@ ) -c $<
$(objdir):
if [ ! -d $(objdir) ] ; then mkdir $(objdir) ; fi
Run Code Online (Sandbox Code Playgroud)
当我这样做时,每次都要强制编译.为什么?除非没有目录,否则不应该发生mkdir?为什么这个简单的改变破坏了依赖?
我有一些使用的JUnit测试TemporaryFolder @Rule.他们使用TemporaryFolderin @Before方法执行一些设置:
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Before
public void init() {
folder.newFile("my-file.txt");
}
@Test
public void myTest() { ... }
Run Code Online (Sandbox Code Playgroud)
大部分时间这都很完美.但是,在使用时SpringJUnit4ClassRunner我发现在某些情况下,在应用内部实例init()之前调用该方法.因此,临时文件夹位置未设置(即:)在内部使用时,我的文件最终在工作目录中,而不是.StatementTemporaryFoldernullfolderinit()/tmp
因此,在某些情况下,@Before方法会在规则之前执行,但是,我无法建立明确的模式.我偶尔会看到一些与我自己的规则实现类似的问题.
有什么方法可以确保在任何设置方法之前应用我的规则语句?
我想在我的IDE(Eclipse)中使用与Sonar配置文件相同的Ruleset.
我从Sonar Permalinks获得了PMD XML规则集,并希望将其导入我的PMD Eclipse插件,但是当我尝试这样做时,"确定"按钮被取消激活...

有人能帮我吗 ?
我一直在评估Drools作为规则引擎,用于我们的业务Web应用程序.
我的用例是订单管理应用程序.
规则如下:
- 如果用户类型为"特殊",则额外提供5%的折扣.
- 如果用户已经进行了10次以上的购买,请额外享受3%的折扣.
- 如果产品类别为"旧",请向价值5美元的用户赠送礼品篮.
- 如果产品类别为"新",请向价值1美元的用户赠送礼品篮
- 如果用户过去已购买超过1000美元,则免费送货
我看到的直接挑战是:
- 没有有意义的用户界面可以提供给最终用户修改规则.
- 从最终用户的角度来看,Guvnor UI或任何修改drl文件的编辑器都是不可接受的 - 这些规则中的大多数都将在db中可用的大量数据上运行
所以,
- 我想让管理员用户在我的Web App UI中指定这些规则.
- 我可以将这些"规则"存储在数据库中,然后通过Drools对它们进行操作 - 至少允许我通过"自己的"UI"修改"这些规则.所以这就像数据库中的决策表.
- 最好的方法是什么?
简而言之,我想在运行时从规则库创建,编辑和删除规则.我很难弄清楚如何在流氓6+中做到这一点.
我知道在先前版本的drools(<= 5.6)中,有一个.drl文件的XML表示和一个用于它的API:https://docs.jboss.org/drools/release/5.6.0 .Final/drools-expert-docs/html/ch04.html#d0e8052.
从5.6开始的drools文档表明这个已弃用,它似乎在6处被完全删除.我不想使用已知没有直接升级路径的API.
由于工作流程要求以及Web用户界面的复杂性,将Guvnor或Workbench UI公开给用户进行规则编辑也不太合适.我想从Java代码创建和管理规则.
我想要一个比.drl文件的字符串模板更好的方法来创建新规则和修改规则.从Java以编程方式创建新规则的用途是什么?我做了很多搜索,但似乎无法为此找到一组Java API调用.