->where('orders.date_paid', 'BETWEEN', array($from, $to))
->and_where('orders.status', '=', 'new')
->or_where('orders.status', '=', 'delivered')
Run Code Online (Sandbox Code Playgroud)
我想显示date_paid介于$ from和$ to之间的所有行,其中status是new或deliver.
当我添加这个or_where()时,它会忽略BETWEEN $ from和$ to date_paid where子句.
我怎么能这样做?
我正在使用BCB6,但它应该与Delphi相同,如果我只是在我的表单中添加这样的处理程序:
void __fastcall TForm1::WndProc(TMessage &Message)
Run Code Online (Sandbox Code Playgroud)
并处理WM_PAINT,我没有得到TWinControl提供的DoubleBuffered的好处.有没有办法在表单上做一些自定义绘画,尊重DoubleBuffered设置(也就是写入TWinControl创建的内存位图)?
controls.pas中的此函数是DoubleBuffered应用的位置:
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
Run Code Online (Sandbox Code Playgroud)
它创建一个内存位图,然后再次调用自身.所以当Message.DC为0时我需要一种方法来调用该函数,所以它会创建位图然后我不会再调用它...但是WMPaint不是虚拟的,也不是PaintHandler,所以我我没有看到一种方法来吸引这个.
我知道我可以创建自己的双缓冲,但如果可能的话,我宁愿使用已经存在的东西.我计划将这个设计转移到其他控件上,而不仅仅是我的表格.
这应该是一个非常简单的解决方案,但由于某种原因,我错过了一些东西.我所要做的就是获取我必须编写标题的字符串生成器函数,但由于某种原因它当前不是.
当我尝试将if语句更改为!File.Exists(tempFileName)时,它不会通过我的循环运行.
有什么建议?另外,如果您需要更多信息,请与我们联系.提前致谢.
public static void Open(string tempFileName, string division,
int zipFiles, int conversions, int returnedFiles, int totalEmails)
{
StreamWriter dailyStats;
//This is where I am missing something
//I am passing in the original filename of a log, then adding "-Stats.log"
//so I can tell the difference between what is the new stats file, and the original log file
if (File.Exists(tempFileName))
{
dailyStats = new StreamWriter(tempFileName + "-Stats.log");
StringBuilder sb = new StringBuilder();
sb.Append("Division");
sb.Append("\t");
sb.Append("Zip Files");
sb.Append("\t");
sb.Append("Conversions");
sb.Append("\t"); …Run Code Online (Sandbox Code Playgroud) 我在名为"MyClass"的类中有一个静态的"Builder"类.如果我尝试从两个线程同时使用构建器创建两个MyClass实例,它会安全吗?可以将一个线程设置的值分配给另一个线程创建的对象吗?
码:
public class MyClass {
private int height;
private int weight;
private MyClass(Builder builder) {
height = builder.height;
weight = builder.weight;
}
public static class Builder {
private int height;
private int weight;
public Builder height(int h) {
height = h;
return this;
}
public Builder weight(int w) {
weight = w;
return this;
}
public MyClass build() {
return new MyClass(this);
}
}
}
Run Code Online (Sandbox Code Playgroud) 在构建器中声明父类的实例和Field使用该变量初始化每个实例并在构建器中再次单独声明每个变量然后将构建器声明为构造函数的一部分来初始化每个变量之间是否存在差异Field?
public class Foo {
public int i;
public String s;
private Foo(Builder builder) {
i = builder.i;
s = builder.s;
}
public static class Builder {
private int i;
private String s;
public Builder i(int i) {
this.i = i;
return this;
}
public Builder s(String s) {
this.s = s;
return this;
}
public Foo build() {
return new Foo(this);
}
}
}
Run Code Online (Sandbox Code Playgroud)
public class Foo {
public int i;
public String s;
public …Run Code Online (Sandbox Code Playgroud) 在本讨论中(创建流畅的API),响应表明Builder模式比使用Extension方法创建Fluent接口要好.
这可能是什么原因?扩展方法遵循SOLID原则中的"O"......我个人只使用扩展方法来开发Fluent接口,但我想知道是否需要重新考虑这个...
我在Rails 4应用程序中的请求的响应主体中呈现XML时遇到问题.在下面的示例中,响应正文为空白.我在模板中放了一个调试器,所以我知道它贯穿它但不会渲染任何东西.
我创建了一个简单的rails应用程序来演示我使用构建器返回xml的问题.任何人都能指出这个例子的(可能是愚蠢的简单)问题吗?
这是控制器,模板和测试:
控制器/ bars_controller.rb
require 'builder'
class BarsController < ApplicationController
before_action :set_bar, only: [:show]
# GET /bars/1
# GET /bars/1.json
def show
@xml = Builder::XmlMarkup.new
render template: 'bars/show.xml.builder', formats: [:xml]
end
private
# Use callbacks to share common setup or constraints between actions.
def set_bar
@bar = Bar.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def bar_params
params.require(:bar).permit(:foo, :bar)
end
end
Run Code Online (Sandbox Code Playgroud)
/views/bars/show.xml.builder
@xml.instruct!
@xml.bar do
@xml.foo(@bar.foo)
@xml.bar(@bar.bar)
end
Run Code Online (Sandbox Code Playgroud)
/test/controllers/bars_controller_test.rb
require …Run Code Online (Sandbox Code Playgroud) 我想知道,与我在大多数网站上看到的构建器对象实现相比,我的构建器对象的实现是否有缺点.我知道为一个只有2个字段的类实现一个构建器对象实在是太过分了,但这些仅仅是示例,意味着很小.
我的实施:
public class User {
private String firstname;
private String lastname;
public String getFirstname() {
return firstname;
}
public String getLastname() {
return lastname;
}
private User(){}
public static class Builder{
private final User user;
public Builder(){
user = new User();
}
public Builder firstname(String firstname){
user.firstname = firstname;
return this;
}
public Builder lastname(String lastname){
user.lastname = lastname;
return this;
}
public User build(){
return user;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在互联网上找到的构建器对象(example1 example2):
public class User {
private …Run Code Online (Sandbox Code Playgroud) 根据"设计模式:可重用的面向对象软件的元素"一书,
构建器模式将复杂对象的构造与其表示分开,以便相同的构造过程可以创建不同的表示.
通常,Builder模式通过提供逐步构建对象的方法并提供实际返回最终Object的方法来解决具有大量可选参数和不一致状态的问题.
使用构建器模式,我们将使用构建方法来生成不可变的对象.
我的问题:
我可以在生成对象的类中使用构建器模式保持setter方法,允许改变构建对象的可能性吗?
如果我去制作可变对象,我不应该使用构建器模式?
我想在Spring项目中创建一个构建器类(即实现构建器设计模式的类)。问题是我需要构建器使用一些Spring服务。我显然不希望用户在构造函数中显式提供服务,但是当我尝试@Autowire提供服务时,我得到了Autowired members must be defined in valid Spring bean。我可以@Component用来注释我的构建器,但这会使它成为一个单例,这对于构建器而言是不希望的。如何将服务注入我的构建器类而不使其单身?
要使用本文的示例,可以说我有以下构建器:
BankAccount account = new BankAccount.Builder(1234L)
.withOwner(25324)
.atBranch("Springfield")
.openingBalance(100)
.atRate(2.5)
.build();
Run Code Online (Sandbox Code Playgroud)
我想withOwner使用UserService给定的ID号作为参数从数据库中获取实际用户。我将如何向构建器注入UserService?