小编sor*_*ist的帖子

对工厂方法使用私有构造函数?

假设我正在构建一个不可变的 Yahtzee 记分卡类:

public final class Scorecard {

    private Map<Category, Integer> scorecard = new HashMap<Category, Integer>();

    public Scorecard() {
        // Instantiates a new empty scorecard
    }

    private Scorecard(Map<Category, Integer> scorecard) {
        this.scorecard = scorecard;
    }

    public Scorecard withScore(Category category, int[] roll) {
        newScorecard = new HashMap<Category, Integer>(scorecard); // Pretend that this is a deep-copy
        newScorecard.put(category, calculateScoreFromRoll(roll));
        return new Scorecard(newScorecard);
    }

    public int getScore(Category category) {
        return scorecard.get(category);
    }

}
Run Code Online (Sandbox Code Playgroud)

基本上我不想暴露类的内部结构。如果我没有私有构造函数,那么我将需要使用带有私有构造函数的公共构造函数Map(并且我也可能会丢失该withScore()方法)以便进行评分。但这是一种有效的工厂方法吗?

java immutability private-constructor

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

当PHP响应头包含"application/json"时,JSON.parse在jQuery中失败

我试图想出这个问题让我有点头疼.要通过Ajax从PHP脚本请求一些json数据,我正在使用jQuery函数:

$.ajax({
    type: 'GET',
    cache: 'false',
    url: ajaxUrl,
    data: dataString,
    success: updatePage
});
Run Code Online (Sandbox Code Playgroud)

如果我没有在PHP标头中设置content-type为:

header('Content-type: application/json');
Run Code Online (Sandbox Code Playgroud)

然后我从服务器的响应如下:

{"content":"new content"}
Run Code Online (Sandbox Code Playgroud)

内容类型自动设置为text/html.当jQuery ajax选项中的dataType未设置时,它使用默认的"智能猜测".我强烈认为jQuery将响应数据识别为json,因为updatePage被解析为一个对象.updatePage使用JSON js库(json2.js),并执行此操作:

function updatePage(data) {
  $dataObj = JSON.parse(data); 
}
Run Code Online (Sandbox Code Playgroud)

当函数被ajax成功调用时,一切正常.没有错误.这是奇怪的事情,如果我将头设置为application/json,如上所述,JSON.parse突然报告错误.如果我在jQuery ajax请求中将我的dataType设置为'json',则会发生完全相同的错误.我在更改这些内容时从PHP脚本获得的响应与上面的内容完全相同.Firebug中的错误如下所示:

JSON.parse
  $dataObj = JSON.parse(data); 
Run Code Online (Sandbox Code Playgroud)

有点长,对不起,但如果有人知道什么是错的,他们的帮助非常感谢.谢谢你的时间.

php ajax jquery json http-headers

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

在CodeIgniter中路由所有URL请求?

有没有办法捕获所有URL请求并路由它们?有点像:

$route['everything'] = "controller";
Run Code Online (Sandbox Code Playgroud)

php codeigniter

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

如何将列表转换为他们的conrecte实现?

假设我使用的是一个我不知道源代码的库.它有一个返回List的方法,如下所示:

public List<SomeObj> getObjs() { ... }
Run Code Online (Sandbox Code Playgroud)

我想知道这是不是一个好主意:

ArrayList<SomeObj> objs = (ArrayList<SomeObj>) getObjs();
Run Code Online (Sandbox Code Playgroud)

例如,如果getObjs()中的List的具体实现是a,LinkedList那么是否会出现某种类型的差异?

java

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

我低估了MySQL吗?

我即将在我的网站上实现一个功能,该功能根据用户在其库中已有的内容向用户推荐内容(即Last.fm).单个表包含他们添加的内容的所有记录,因此行可能类似于:

--------------------
| userid | content |
--------------------
|   28   |    a    |
--------------------
Run Code Online (Sandbox Code Playgroud)

当我想为用户推荐一些内容时,我使用查询来获取在其库中添加了内容的所有用户ID.然后,在这些用户ID中,我创建另一个查询,查找这些用户中的下一个最常见的内容(fx.'b'),并向用户显示该内容.

我的问题在于我在考虑这里的大局.说最终我的网站会在表格中保存500.000行,这会使MySQL响应非常慢还是我在这里低估了MySQL?

php mysql

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

Kohana 3.0中的路线和正则表达式

Kohana的新用户...我想知道是否可以使用正则表达式来设置一个处理所有请求的路由,例如除了'main_page'之外的所有请求?

谢谢你的时间

php url-routing kohana

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

这可以更轻松吗?Java初学者问题

我需要创建一系列对象,它现在看起来很丑陋:

CheckBox checkOne = (CheckBox) findViewById(R.id.checkOne);
CheckBox checkTwo = (CheckBox) findViewById(R.id.checkTwo;
CheckBox checkThree = (CheckBox) findViewById(R.id.checkThree);
CheckBox checkFour = (CheckBox) findViewById(R.id.checkFour);
CheckBox checkFive = (CheckBox) findViewById(R.id.checkFive);
Run Code Online (Sandbox Code Playgroud)

在Java方面我处于中间水平,所以我想做的是做一个for循环,然后使用变量变量.唉,Java不支持这个.有没有,更少递归,这样做的方式?

java android

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

按代码设置dp单位的视图高度?

我想知道是否可能将我的java代码中LinearLayout的高度从100dp更改为200dp?

java android android-layout

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

两个AsyncTasks可以共享相同的SQLiteDatabase对象吗?

如果他们只对它执行查询?就像是:

private SQLiteDatabase db;

@Override
public void onCreate(Bundle savedInstanceState) {
    db = getWritableDatabse();
}

private Task1 extends AsyncTask<Void, Void, Void> {
    @Override
    protected Void doInBackground(Void... arg0) {
        db.query(doSomething);
        ...
    }
}

private Task2 extends AsyncTask<Void, Void, Void> {
    @Override
    protected Void doInBackground(Void... arg0) {
        db.query(doSomething);
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading android android-asynctask

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

在Laravel中验证Input :: json()

验证不适用于Input :: json.我尝试过使用json_decode /使用数组的不同方法,但仍然没有运气.这是我的代码:

//routes.php
Route::get('create', function() {

    $rules = array(
        'username' => 'required',
        'password' => 'required',
    );

    $input = Input::json();
    //var_dump($input); //outputs std obj with correct inputs
    $validation = Validator::make($input, $rules);
    if ($validation->fails()) { //throws exeption "Call to a member function to_array() on a non-object"
        return Response::json($validation->errors->all());
    }

}
Run Code Online (Sandbox Code Playgroud)

我正在使用Angular Resource发布数据...但它总是抛出错误"在非对象上调用成员函数to_array()"...我无法粘贴我的角度代码,因为我无法正确格式化和stackoverflow不允许我这样做.

laravel angularjs angular-resource

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

限制在CodeIgniter中直接访问您的视图文件?

我是CodeIgniter的新手,我想知道限制直接访问您的视图文件是否被视为一种好习惯?显然,它们将包含许多依赖变量的php代码,以及未从控制器传递给它们的内容,因此,如果直接访问php代码,则很容易出错,不是吗?

额外的问题:为什么助手文件夹,库文件夹,钩子文件夹等在应用程序文件夹中为空?

谢谢你的时间。

php codeigniter

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