假设我正在构建一个不可变的 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()方法)以便进行评分。但这是一种有效的工厂方法吗?
我试图想出这个问题让我有点头疼.要通过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)
有点长,对不起,但如果有人知道什么是错的,他们的帮助非常感谢.谢谢你的时间.
有没有办法捕获所有URL请求并路由它们?有点像:
$route['everything'] = "controller";
Run Code Online (Sandbox Code Playgroud) 假设我使用的是一个我不知道源代码的库.它有一个返回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那么是否会出现某种类型的差异?
我即将在我的网站上实现一个功能,该功能根据用户在其库中已有的内容向用户推荐内容(即Last.fm).单个表包含他们添加的内容的所有记录,因此行可能类似于:
--------------------
| userid | content |
--------------------
| 28 | a |
--------------------
Run Code Online (Sandbox Code Playgroud)
当我想为用户推荐一些内容时,我使用查询来获取在其库中添加了内容的所有用户ID.然后,在这些用户ID中,我创建另一个查询,查找这些用户中的下一个最常见的内容(fx.'b'),并向用户显示该内容.
我的问题在于我在考虑这里的大局.说最终我的网站会在表格中保存500.000行,这会使MySQL响应非常慢还是我在这里低估了MySQL?
Kohana的新用户...我想知道是否可以使用正则表达式来设置一个处理所有请求的路由,例如除了'main_page'之外的所有请求?
谢谢你的时间
我需要创建一系列对象,它现在看起来很丑陋:
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代码中LinearLayout的高度从100dp更改为200dp?
如果他们只对它执行查询?就像是:
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) 验证不适用于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不允许我这样做.
我是CodeIgniter的新手,我想知道限制直接访问您的视图文件是否被视为一种好习惯?显然,它们将包含许多依赖变量的php代码,以及未从控制器传递给它们的内容,因此,如果直接访问php代码,则很容易出错,不是吗?
额外的问题:为什么助手文件夹,库文件夹,钩子文件夹等在应用程序文件夹中为空?
谢谢你的时间。
java ×5
php ×5
android ×3
codeigniter ×2
ajax ×1
angularjs ×1
http-headers ×1
immutability ×1
jquery ×1
json ×1
kohana ×1
laravel ×1
mysql ×1
url-routing ×1