问题列表 - 第4808页

参数与成员变量

我最近一直在使用其他人的代码,我意识到这个人对私有变量和方法参数的理念与我的不同.我一般认为私有变量只应在以下情况下使用:

  1. 需要存储变量以便以后调用.
  2. 存储在变量中的数据在类中全局使用.
  3. 当需要对变量进行全局操作时(与每个类方法读取变量的需求明显不同).
  4. 什么时候会使编程变得更容易.(不可否认,但在许多情况下必须避免将自己画成一个角落).

(我承认,上面的许多都是轻微的重复,但它们看起来各不相同,值得这样的处理......)

这似乎是防止意外更改变量的最有效方法.似乎遵循这些标准将允许最终操纵外部引用(如果类最终被修改),从而在将来为您留下更多选项.这只是一个风格问题(如一个真正的括号或匈牙利命名惯例),还是我有这种信念的理由?在这种情况下,实际上是否有最佳做法?

编辑
我认为这需要纠正.我使用上面"全局"的实际意思,"全局实例方法"并非"任何地方都可以全球访问".

edit2
一个例子被要求:

class foo
{
    private $_my_private_variable;

    public function __constructor__()
    {
     }

    public function useFoo( $variable )
    {
        // This is the line I am wondering about,
        // there does not seem to be a need for storing it.
        $this->_my_private_variable = $variable; 
        $this->_doSometing();
    }

    private function _doSomething()
    {

        /*
          do something with $this->_my_private_variable.
        */
        // This is the only place _my_private_variable is used.
        echo $this->_my_private_variable;
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我做的方式:

class foo
{ …
Run Code Online (Sandbox Code Playgroud)

oop variables private

22
推荐指数
3
解决办法
8331
查看次数

2个输入字段显示相同的内容

有点奇怪的.

我想要一个JTextField,用户将在其中键入一个字符串.但是,在键入时,我希望该文本能够实时自动打印到另一个JTextField.

我不确定这是否可行,因为我不记得看到任何应用程序这样做了.

有人甚至以前见过这样的事吗?

实际上,现在我睁开眼睛,我看到stackoverflow会这样做.

有没有已知的Java实现方法?

java swing

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

动态创建Office Open XML文档:在打开时更新所有字段

我正在以编程方式生成Office Open XML文档(Word 2007格式),并希望在我生成的文档首次在Word中打开时更新所有字段.

当我刚刚研究过这个时,唯一的方法就是在文档打开时运行VB Script.但VB脚本默认不运行,为此工作,用户必须授权脚本,这比要求用户执行"全选,F9"更复杂,因此这违背了目的.

有什么建议吗?

亚历克斯

vbscript openxml

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

是否可以更改内置haskell范围函数或文字的步长?

默认

[1..5]
Run Code Online (Sandbox Code Playgroud)

给出这个

[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

也可以使用范围功能完成.是否可以更改点之间的步长,以便我可以得到类似下面的内容?

[1,1.5,2,2.5,3,3.5,4,4.5,5] 
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming range

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

需要较小的GUID替代数据库ID,但对于URL仍然是唯一且随机的

我已经看了所有的地方,我似乎无法得到一个完整的答案.因此,如果答案已经存在于stackoverflow上,那么我提前道歉.

我想要一个独特的随机ID,以便我网站中的用户无法猜出下一个号码,只是跳到其他人的信息.我打算坚持使用主键的递增ID,但也要在DB中为该行存储随机且唯一的ID(一种哈希)并在其上放置一个索引.

从我的搜索中我意识到我想避免碰撞,我已经读过一些关于SHA1的提及.

我的基本要求是

  • 小于GUID的东西.(在URL中看起来很可怕)
  • 必须是独特的
  • 避免碰撞
  • 不是很长的不可读的奇怪字符列表.

我正在寻找的一个例子是www.somesite.com/page.aspx?id=AF78FEB

我不确定我是应该在数据库中实现这个(我使用的是SQL Server 2005)还是在代码中(我使用的是C#ASP.Net)

编辑:

从我所做的所有阅读中,我意识到这是通过默默无闻的安全.我打算对访问页面进行适当的授权和身份验证.我将使用.Net的身份验证和授权框架.但是,一旦合法用户登录并正在访问一个充满属于他的项目的链接(但动态创建的页面).例如,链接可能是www.site.com/page.aspx?item_id=123.什么阻止他点击该链接,然后更改上面的URL以访问不属于他的www.site.com/page.aspx?item_id=456?我知道一些像Struts这样的Java技术(我有待纠正)会在会话中存储所有内容并以某种方式解决这个问题,但我不知道如何做到这一点.

c# database asp.net url

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

如何为我独立的Ruby脚本设置Rails环境?

我在我的Rails应用程序中有一个Ruby脚本,用于从Twitter加载一些数据.

在未来,我将使它成为一个自动后台进程,但现在我手动运行它,如:

ruby /lib/twitter/twitterLoad.rb
Run Code Online (Sandbox Code Playgroud)

为了使用Rails模型类等,我将以下作为脚本的第一行:

require "#{File.dirname(__FILE__)}/../../config/environment.rb"
Run Code Online (Sandbox Code Playgroud)

默认情况下,使用开发环境.但是,我希望能够在某个时候选择生产环境.

更新#1:RAILS_ENV常量在environment.rb文件中设置.所以,我能够将ENV ['RAILS_ENV'] ='production'放在最顶层(在environment.rb之前)并解决我的问题.所以,我的新问题是,可以通过命令行传入env变量吗?

ruby ruby-on-rails

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

JQuery AutoComplete结果格式?

我有一个由空格分隔的值字符串,我返回到Jquery调用,但它不会将单词分隔成行.数据应该以字符串或列表或其他方式返回吗?

asp.net-mvc jquery autocomplete

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

如何在Rails测试中指定POST参数?

使用Test :: Unit和Shoulda.试着去测试Users.create.我的理解是Rails表单为这样的对象发送params:

user[email]
Run Code Online (Sandbox Code Playgroud)

在你的行动中变成哈希,对吧?

params[:user][:email]
Run Code Online (Sandbox Code Playgroud)

好的,所以在我的测试中我试过......

setup { post :create, :post => { 'user[email]' => 'invalid@abc' } }
Run Code Online (Sandbox Code Playgroud)

setup { post :create, :post => { :user => { :email => 'abc@abcd' } } }
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,在我的行动中,params[:user]都是零.

ruby testing ruby-on-rails shoulda

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

PL/SQL问题返回序列标量值

我试图从存储在包中的proc返回sequence.nextval到我的程序.在谈到PL/SQL时,我非常环保,而且我对发生的事情感到很茫然.实际返回的错误是

PLS-00306:调用PROCGET_BOOKMARKID第1行时,参数的数量或类型错误,第7列语句被忽略.

这是我的包创建代码......

create or replace
package BOOKMARKS AUTHID DEFINER is
  type t_Bookmark is ref cursor;

  procedure procGet_Bookmarked_Information(bookmarkId in NUMBER, bookmark out t_Bookmark);
  procedure procInsert_Bookmark(bookmarkId in NUMBER, currExtent in VARCHAR2, selectedLayers in VARCHAR2);
  procedure procGet_Bookmark_Id(bookmarkId out NUMBER);

end BOOKMARKS; 

并且get_bookmark_id的proc看起来像这样(其他的procs工作正常,所以我不打算发布它们)...


  procedure procGet_Bookmark_Id(bookmarkId out NUMBER)
  IS
  BEGIN
    SELECT seq_bookmarks.nextval INTO bookmarkId
      FROM dual;

  END procGet_Bookmark_Id;
Run Code Online (Sandbox Code Playgroud)

现在,我确定这不是我的序列.如果我只是通过这样做直接从我的代码查询数据库,我可以得到nextval ...


string sql = string.Format(@"select {0}.seq_bookmarks.nextval from dual", ApplicationSchema);

应用程序模式只是我在这种情况下连接的数据库.

所以,在我看来,问题完全在我的PL/SQL中,这是有道理的,因为我几乎没有使用它.有任何想法吗?

编辑 好了,所以这里是实际调用的代码.


DataOperationResult result = DataAccess.GetBookmarkId();
DataRow currResult = result.DataTableResult.Rows[0];

DataAccess只是一类查询,以下是此特定查询的代码.


string sql = …
Run Code Online (Sandbox Code Playgroud)

c# oracle plsql stored-procedures

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

SAML身份验证请求中是否允许属性?

是否可以在SAML身份验证请求中发送属性?

<samlp:AuthnRequest
   xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
   xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
   ID="aaf23196-1773-2113-474a-fe114412ab72"
   Version="2.0"
   IssueInstant="2004-12-05T09:21:59Z"
   AssertionConsumerServiceIndex="0"
   AttributeConsumingServiceIndex="0">
   <saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
   <samlp:NameIDPolicy
     AllowCreate="true"
     Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
 </samlp:AuthnRequest>
Run Code Online (Sandbox Code Playgroud)

saml

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