问题列表 - 第49469页

Java继承,使用构建器模式

我有3个班:

  1. 错误
  2. ShellError
  3. WebError

哪里

ShellError extends Error 
Run Code Online (Sandbox Code Playgroud)

WebError extends Error
Run Code Online (Sandbox Code Playgroud)

ShellError某些领域中,有些领域是可选的,而其他领域则是必需的.我正在以下列方式构建对象:

shellError = new ShellError.Builder().setFile(filePattern)
.setHost(host).setPath(path).setSource(file.isSource())
.setJobName(p.getJobName()).build();
Run Code Online (Sandbox Code Playgroud)

自从ShellError延伸以来Error,我进一步:

shellError.setDescription(msg.toString());
shellError.setExceptionClass("MyEvilException");
shellError.setExceptionMessage("Some clever error message");
shellError.setStacktrace(stack);
Run Code Online (Sandbox Code Playgroud)

所以...为什么要打扰生成器呢?我喜欢这样的事实,即我的build()以及其他方面可以方便地验证所有字段是否设置得恰当等.

我会喜欢它,如果我可以... build()ShellError并添加Error类中的字段.

我做了什么工作.

  • 问题是:

有没有更好的方法,或者它有意义我做了什么?

- 编辑

我更新了Builder()以接受之前在Error类中的一些参数.我现在有

shellError = new ShellError.Builder(exception, "Some description").setFile(filePattern).setHost(host)
.setPath(path).setSource(file.isSource()).
setJobName(p.getJobName()).build();
Run Code Online (Sandbox Code Playgroud)

你说什么?更好?更差?

java inheritance

10
推荐指数
2
解决办法
5804
查看次数

将内存流转换为BitmapImage?

我有一个原来是PNG的图像,我将其转换为byte []并保存在数据库中.最初,我只是将PNG读入内存流并将流转换为byte [].现在我想要读取byte []并将其转换为BitmapImage,以便我可以将WPF Image控件绑定到它.

我在网上看到很多矛盾和混乱的代码来完成将byte []转换为BitmapImage的任务.我不确定是否需要添加任何代码,因为图像最初是PNG.

任何人都可以提供代码将流转换为BitmapImage?谢谢你的帮助.

wpf

31
推荐指数
2
解决办法
4万
查看次数

UITabBarController的'selectedViewController'更改时触发的事件?

当用户更改a的选定选项卡时UITabBarController,是否有一个事件被触发以指示此特定操作发生了?

我知道viewDidLoad如果UIViewController以前没有加载就可以被解雇,如果是这样的话,viewWillAppear可以调用它.但这些都不会告诉我视图已显示,因为选中了标签栏.

iphone uitabbarcontroller uiviewcontroller

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

有没有办法重命名Xcode 4方案?

我一直在寻找Xcode,但我找不到任何允许你在Xcode 4中重命名现有方案的地方.这甚至可能吗?

xcode xcode4

117
推荐指数
2
解决办法
2万
查看次数

为什么C#4.0中的可选参数需要编译时常量?

还有一种方法可以使用运行时值作为可选方法参数吗?

.net c# optional-parameters

11
推荐指数
3
解决办法
2201
查看次数

清除VB.NET中的复选框

我正在为Uni做任务,在我的VB.NET表单中我有一些复选框,我正在尝试循环并清除它们(我有一个按钮,它将清除表单)

我的问题是,当没有明确告诉VB我想要使用哪个复选框时,似乎没有可用于设置复选框状态的属性.例如,我可以去

WineCheckBox.Checked = False
Run Code Online (Sandbox Code Playgroud)

这将检查框,但我的魔杖干扰代码,而不必为我的每个复选框重复这个,这是我试图做的:

If TypeOf element Is CheckBox Then
    element.Checked = False
End If
Run Code Online (Sandbox Code Playgroud)

我尝试过使用element.CheckState并且element.Checked两次都得到"Checked(或CheckState)不是System.Windows.Forms.Control的成员"

我已经查看了我能找到的所有属性,但这些属性对我来说似乎都没用...

我错过了什么吗?或者这是不可能的

谢谢

编辑:

这是整个代码块:

'clear the controls
    For Each element As Control In Me.Controls
        If TypeOf element Is TextBox Then
            element.Text = ""
        End If
        If TypeOf element Is CheckBox Then
            element.Checked = False
        End If
    Next
Run Code Online (Sandbox Code Playgroud)

vb.net visual-studio-2010 vb.net-2010

0
推荐指数
1
解决办法
2万
查看次数

删除 XSL 样式表标签中的 XSL 命名空间前缀

是否可以在 XSL 样式表中删除xsl:to XSL 标签?

例如,可以:

<xsl:if test=''>
Run Code Online (Sandbox Code Playgroud)

键入为:

<if test=''>
Run Code Online (Sandbox Code Playgroud)

编辑: 样式表中包含 HTML 和 XML 节点。

谢谢,罗斯

xslt xslt-1.0

2
推荐指数
1
解决办法
359
查看次数

C++ 11 - 区分右值指针

如何将变量区分为编译器构造的字符串?

例如,虽然右值"Hello, World"是类型const char*.const char*本身并不意味着指针不能改变.一个char* const指针不能改变,但是这不是什么编译器构成.

这是否意味着,对于任何拥有a的容器,const char*数据应该通过C++的移动语义之外的方式复制?有没有办法只移动编译器构造的字符串并保留所有其他字符串?

例如,在GCC 4.5.2,它返回类型的方法int,而不是int&被当作返回int&&.我不知道实际的标准是否应该是这样的,但这就是海湾合作委员会暂时做的事情.

编辑:澄清一下,我的意思是应该复制指针指向的实际内存.这意味着必须分配新内存,并且应将指针中的数据复制到新位置.

c++ string rvalue-reference move-semantics c++11

2
推荐指数
1
解决办法
1930
查看次数

在计划中建模无限期重复任务(类似日历的rails应用程序)

这是一个相当绊脚石.警告:以下不是问题,而是对我提出的问题的解释.我的问题是 - 你有更好的方法吗?是否有一些我不熟悉的常用技巧?似乎这是一个微不足道的问题.

所以你有任务模型.您可以创建任务,完成任务,销毁它们.然后你有重复的任务.它就像常规任务一样,但它附有一个重复规则.但是,任务可以无限期地重现 - 您可以在计划中提前一年,并且您应该看到任务显示.

因此,当用户创建一个定期任务时,您不希望在未来一百年内构建数千个任务,并将它们保存到数据库中,对吗?所以我开始思考 - 你是如何创造它们的?

一种方法是在查看日程安排时创建它们.因此,当用户提前一个月移动时,将创建任何重复任务.当然,这意味着您不能再简单地处理任务的数据库记录.您执行的任务上的每个SELECT操作都必须位于特定日期范围的上下文中,以便触发该日期范围内的重复任务.这是一种维护和性能负担,但可行.

好吧,但原来的任务怎么样?每个周期性任务都与创建它的重复规则相关联,并且每个重复规则都需要知道开始重复的原始任务.后者很重要,因为当用户浏览他们的日程安排时,您需要将原始任务克隆到新日期.我猜也是可行的.

但如果原始任务更新会发生什么?这意味着现在,当我们浏览计划时,我们将创建从修改的任务克隆的重复任务.那是不可取的.所有隐式持久的重复任务都应该显示添加重复时原始任务的样子.因此,我们需要单独存储原始任务的副本,并从中进行克隆,以便重现工作.

但是,当用户在计划中导航任务时,我们如何知道在特定点是否需要创建新的重复任务?我们问复发规则:"嘿,我今天应该继续执行任务吗?" 它说是或否.如果今天已经有这个重复的任务,我们不会创建一个.一切都很好,除了用户还应该能够简单地删除一个自动持久的重复任务.在这种情况下遵循我们的逻辑,系统将重新创建已删除的任务.不好.因此,这意味着我们需要继续存储任务,但将此标记为已删除的任务以进行此重复.咩.

正如我在开始时所说,我想知道其他人是否解决了这个问题并且可以在这里提供建筑建议.它必须是这个混乱吗?还有什么比我更缺的优雅吗?

更新:由于这个问题难以完美回答,我将批准对设计/架构最有帮助的见解,这对于此类问题具有最佳的帮助/权衡比率.它不必包含所有细节.

ruby architecture database-design ruby-on-rails

11
推荐指数
1
解决办法
3230
查看次数

Java泛型方法继承和覆盖规则

我有一个抽象类,它有一个泛型方法,我想通过用特定类型替换泛型参数来覆盖泛型方法.所以在伪代码中我有以下内容:

public abstract class GetAndParse {
  public SomeClass var;

  public abstract <T extends AnotherClass> void getAndParse(T... args);
}

public class Implementor extends GetAndParse {
  // some field declarations

  // some method declarations

  @Override
  public <SpecificClass> void getAndParse(SpecificClass... args) {
    // method body making use of args
  }
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,我不允许这样做?我是在做某种语法错误还是这种继承和覆盖是不允许的?具体来说,我收到一个错误,@Override因为eclipse IDE一直在提醒我实现getAndParse.

以下是我希望上述代码的工作方式.我的代码中的其他地方有一个方法,它需要实现的对象实例,GetAndParse这意味着它们有一个getAndParse我可以使用的方法.当我调用getAndParse该实例时,编译器会检查我是否T以正确的方式使用了特定的实例,因此特别T应该扩展AnotherClass它应该是SpecificClass.

java inheritance abstract-class overriding generic-method

35
推荐指数
2
解决办法
4万
查看次数