问题列表 - 第37705页

我应该通过构造函数注入在我的类中明确具体的类依赖吗?

我正在设计一个小项目,我没有对所有类的接口使用编程.我发现有些类几乎不需要改变,所以我让它们被客户端类作为具体类引用.

所以,假设我们已经ClassB消费了以下消费ClassA:

替代文字

class ClassB {
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我应该建立ClassBClassA,或者我应该传递责任"向上"的层次?我将描述两种情况:

class ClassA {
    private ClassB classB;

    public ClassA() {
        this.classB = new ClassB();
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

class ClassA {
    private ClassB classB;

    public ClassA(ClassB classB) {
        this.classB = classB;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道你将如何做到这一点以及它背后的理由是什么!

谢谢

c# java oop dependency-injection

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

belongs_to通过协会

鉴于以下关联,我需要引用从模型中附加的Questiona .我一直在尝试使用它来执行此操作.ChoiceChoicebelongs_to :question, through: :answer

class User
  has_many :questions
  has_many :choices
end

class Question
  belongs_to :user
  has_many :answers
  has_one :choice, :through => :answer
end

class Answer
  belongs_to :question
end

class Choice
  belongs_to :user
  belongs_to :answer
  belongs_to :question, :through => :answer

  validates_uniqueness_of :answer_id, :scope => [ :question_id, :user_id ]
end
Run Code Online (Sandbox Code Playgroud)

我正进入(状态

NameError未初始化的常量 User::Choice

当我尝试做的时候 current_user.choices

它工作正常,如果我不包括

belongs_to :question, :through => :answer
Run Code Online (Sandbox Code Playgroud)

但我想用它,因为我希望能够做到这一点 validates_uniqueness_of

我可能忽略了一些简单的事情.任何帮助,将不胜感激.

activerecord ruby-on-rails ruby-on-rails-3

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

在gdb中调试应用程序输出的问题

我正在TUI模式下使用GDB执行我的第一步.

在调试会话期间,我看到输出到控制台的每一行都出现在一行中(在您看到的图中222222以红色突出显示).这就像拥有一行的输出窗格.

最重要的是,每个\n都不清理该行,因此所有字符串都会相互覆盖,使我的输出非常混乱.

你能帮我解决一下这个问题,还是指点一些关键命令来寻找干净的输出?

我还突出显示了另一个区域(图中1111111),因为第一个字符串是在那里输出的,然后是源代码窗口框架上的所有其他字符串.

替代文字

debugging gdb

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

JSF:如何绑定许多h:selectBooleanCheckbox?

我有一个问题是将h:selectBooleanCheckbox的列表绑定到我的bean.有人帮忙吗?

这不起作用:

<ui:repeat value="#{cartBean.productsList}" var="cartProduct" varStatus="i">
   <h:selectBooleanCheckbox binding="#{cartBean.checkboxes[i.index]}" />
</ui:repeat>

public class CartBean extends BaseBean {
  public List<Product> getProductsList() {...}

  private HtmlSelectBooleanCheckbox[] checkboxes;
  public HtmlSelectBooleanCheckbox[] getCheckboxes() {
    return checkboxes;
  }
  public void setCheckboxes(HtmlSelectBooleanCheckbox[] checkboxes) {
    this.checkboxes = checkboxes;
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

javax.faces.FacesException: javax.el.PropertyNotFoundException: /WEB-INF/flows/main/cart.xhtml @26,97 binding="#{cartBean.checkboxes[i.index]}": Target Unreachable, 'checkboxes' returned null
Run Code Online (Sandbox Code Playgroud)

我解决了我的问题.我使用下面的代码得到我想要的东西(感谢BalusC博客 - http://balusc.blogspot.com/2006/06/using-datatables.html#SelectMultipleRows):

<ui:repeat value="#{cartBean.productsList}" var="cartProduct" varStatus="i">
  <h:selectBooleanCheckbox value="#{cartBean.selectedIds[cartProduct.id]}" />
</ui:repeat>

public class CartBean extends BaseBean {
  private Map<Integer, Boolean> selectedIds = new HashMap<Integer, Boolean>();
  public Map<Integer, Boolean> …
Run Code Online (Sandbox Code Playgroud)

checkbox jsf binding

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

iPhone扩展音频文件服务,mp3 - > PCM - > mp3

我想使用Core Audio扩展音频文件服务框架来读取mp3文件,将其作为PCM处理,然后将修改后的文件作为mp3文件写回.我能够将mp3文件转换为PCM,但无法将PCM文件作为mp3写回.

我已经关注并分析了Apple ExtAudioFileConvertTest示例,但也无法使其工作.失败点是我为输出文件设置客户端格式(设置为规范PCM类型).这失败了,错误"fmt?" 如果输出目标类型设置为mp3.

可以在iPhone上做mp3 - > PCM - > mp3吗?如果我删除失败的行,为输出文件设置kExtAudioFileProperty_ClientDataFormat,代码将失败并显示"pkd?" 当我稍后尝试写入输出文件时.所以基本上我有2个错误:

1)"fmt?" 尝试为输出文件设置kExtAudioFileProperty_ClientDataFormat时

2)"pkd?" 当试图写入输出文件时

以下是设置文件的代码:

NSURL *fileUrl = [NSURL fileURLWithPath:sourceFilePath];
OSStatus error = noErr;

//
// Open the file
//
error = ExtAudioFileOpenURL((CFURLRef)fileUrl, &sourceFile);

if(error){
    NSLog(@"AudioClip: Error opening file at %@.  Error code %d", sourceFilePath, error);
    return NO;
}

//
// Store the number of frames in the file
//
SInt64 numberOfFrames = 0;
UInt32 propSize = sizeof(SInt64);
error = ExtAudioFileGetProperty(sourceFile, kExtAudioFileProperty_FileLengthFrames, &propSize, &numberOfFrames);

if(error){
    NSLog(@"AudioClip: Error …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c core-audio

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

如何知道计时器在javascript中是清除还是超时?

好的,非常简单的问题.我在javascript参加速成课程.

如果我 timer = setTimeout(..., 500)用来设置定时器,然后clearTimeout(timer)清除定时器,定时器的整数值不会改变,所以我的问题是如何知道定时器是超时还是清除?

我想使用if (timer) {...},但显然正整数总是返回true.

javascript settimeout

7
推荐指数
2
解决办法
7624
查看次数

如何在Perl中将数字转换为英文形式?

我需要一个Perl脚本,它将数字作为输入示例222,它应该输出为二百二十二.

perl cpan numbers perl-module

3
推荐指数
2
解决办法
2221
查看次数

无论如何,CMS测试是什么?

我公司最近做了一个POC,并决定使用商业CMS.它正在实施,我们被要求进行测试.在已经过测试并在市场上销售的第三方CMS中有什么待测试?任何方向都会很棒!

testing content-management-system

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

所有那些SQL Server会话来自哪里?

在我启动的开发机器上启动SSMS(2008 R2)之后

"D:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" -nosplash -S localhost -d testdata
Run Code Online (Sandbox Code Playgroud)

没有做任何事情,
在Activity Monitor中观察一些会话(TestData是我的默认数据库)

替代文字

第51场会议详情:

select @@spid;
select SERVERPROPERTY('ProductLevel');
Run Code Online (Sandbox Code Playgroud)

第52场会议详情:

DBCC INPUTBUFFER(52)  
Run Code Online (Sandbox Code Playgroud)

第53次会议详情:

SELECT
CAST(serverproperty(N'Servername') AS sysname) AS [Name],
'Server[@Name=' + quotename(CAST(
        serverproperty(N'Servername')
       AS sysname),'''') + ']' + '/JobServer' AS [Urn]
ORDER BY
[Name] ASC
Run Code Online (Sandbox Code Playgroud)

会议54的详细信息:

SET NOCOUNT ON;

DECLARE @previous_collection_time datetime;
DECLARE @previous_request_count bigint;
DECLARE @current_collection_time datetime;
DECLARE @current_request_count bigint;
DECLARE @batch_requests_per_sec bigint;
DECLARE @interval_sec bigint;

-- Get the previous snapshot's time and batch request count
SELECT TOP 1 …
Run Code Online (Sandbox Code Playgroud)

sql-server session ssms

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

Rails无法跨浏览器请求缓存预先计算的值?(比如记住n个阶乘结果)

例如,以下代码:

class FoosController < ApplicationController
  def index
    if !@foo.nil?
      render :locals => {:bar => @foo}
      return
    else 
      @foo = rand 10
      render :locals => {:bar => @foo}
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我加载localhost:3000/foos多次,它将显示不同的值,并且如果它是开发模式也就不足为奇了,因为每次浏览器请求进入时Rails都会重新加载控制器(以及模型和视图).

但即使在生产模式下,当所有内容都被加载并停留在那里时,@foo浏览器请求的价值也不会停留?每次在Web浏览器上重新加载页面时,都会显示不同的编号.那么Rails每次都会擦除所有值的清洁?如果我们不使用DBMS,有没有办法在请求之间缓存或"记忆"结果?


令人惊讶的是,我只是尝试使用类变量,并且在开发模式下,每次都会给出不同的数字.在生产模式下,Firefox上的数字保持不变,然后Chrome也会一直显示该数字,直到服务器重新启动:

class FoosController < ApplicationController
  @@foo = nil

  def index
    if !@@foo.nil?
      render :locals => {:bar => @@foo}
      return
    else 
      @@foo = rand 10
      render :locals => {:bar => @@foo}
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

为什么类变量memoize但实例变量不能?在Rails 2.x,3.x和Ruby 1.8.7和1.9.2中使用类变量是否可靠地在请求中"记住事物"?

ruby ruby-on-rails memoization ruby-on-rails-3

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