我想设置一个视图的背景可绘制.有两种方法(据我所知):setBackground和setBackgroundDrawable.
当我使用时setBackground,它表示它已经在API级别16中添加,但我的项目的最小SDK版本是7.我认为它不适用于16以下的任何东西,我是对的吗?但是当我使用setBackgroundDrawable时,它表示它已被弃用.
我应该用什么?
我注意到我通常使用常量引用作为返回值或参数.我认为原因是它与在代码中使用非引用几乎相同.但它肯定需要更多的空间和功能声明变得更长.我很喜欢这样的代码,但我认为有些人发现它编程风格很糟糕.
你怎么看?是否值得编写const int& over int?我认为无论如何它都是由编译器优化的,所以也许我只是在浪费时间编码,一个?
是否可以在XML文件中将TimePicker小时模式设置为24小时模式?或者它只适用于Java?我想制作一个24小时选择器的布局,但我找不到这样的属性.
我写了很多看起来像这样的模块:
function get(index, callback) {
if (cache[index] === null) {
request(index, callback); // Queries database to get data.
} else {
callback(cache[index]);
}
}
Run Code Online (Sandbox Code Playgroud)
注意:它是我实际代码的简化版本.
该回调要么在同一个执行中调用,要么在稍后的某个时间调用.这意味着模块的用户不确定首先运行哪个代码.
我的观察是这样的模块重新引入了多线程的一些问题,这些问题以前是由JavaScript引擎解决的.
问题:我应该使用process.nextTick或确保在模块外部调用回调是安全的吗?
我读过一些关于V8隐藏类的文章.但是,我脑子里还有几个问题:
如果,比方说,有两个对象:
var a = { }
a.x = 5
a.y = 6
var b = { }
b.y = 7
b.x = 8
Run Code Online (Sandbox Code Playgroud)
难道他们最终以相同的隐藏类或只是分开,因为一个人去0 + x + y和其他0 + y + x?据我所知,他们得到不同的课程,但只是想确保我得到它.
然后,我们有这个案例:
function Point(x, y) {
this.x = x
this.y = y
}
var a = new Point(7, 8)
var b = { }
b.x = 6
b.y = 8
var c = {
x: 8,
y: 9
}
var d = {
y: …Run Code Online (Sandbox Code Playgroud) 我知道它们有什么不同以及它们是如何工作的,但这个问题更多的是关于编码风格.
每当我编写代码时,我会创建很多类,它们都有变量,其中一些是指针,一些是正常变量.我通常更喜欢变量指针,如果成员持续和类一样长,但我的代码变成这样:
engine->camera.somevar->x;
// vs
engine->camera->somevar->x;
Run Code Online (Sandbox Code Playgroud)
我不喜欢中间的圆点.或者使用私有变量:
foo_.getName();
// vs
foo_->gatName();
Run Code Online (Sandbox Code Playgroud)
我认为这个点在长代码中"消失".我发现- >在某些情况下更容易阅读.
我的问题是如果你使用指针即使变量将在构造函数中创建并在析构函数中删除?在这种情况下有任何风格建议吗?
PS我认为在某些情况下,点看起来更好.
在C++中,我通常会设置2个版本 - 分别使用DEBUG和RELEASE预定义调试和发布.然后,我将使用这些定义来确定常量值,例如启用/禁用日志记录,服务器URL等.
现在,在Java/Android中,我在构建发布之前注释掉了一些内容.我可以说,这不是一个好方法.我可能会忘记一些事情
在构建发布版本(签名)或调试版本(未签名)时,确保不遗漏任何内容的常见做法是什么?
我想知道尺寸函数(大小,长度或其他)是否是线程安全的?根据我的理解,他们通常只返回一些私人会员.我真的怀疑他们做了任何计算.它们都被标记为const但是它们是线程安全的吗?例如std :: list :: size?
我有一个用于写入的锁保护功能和另一个用于读取(也是锁定保护)的功能但是我想知道我的计数功能是否也应该被锁定保护?IMO,看起来浪费了响应时间.我不认为它可能会破坏任何迭代器或者如果同时从列表中删除某个成员(尽可能相同)则会失败.
编辑使问题更清楚.
我正在尝试使用Dart中的Isolates(或Web Workers).我可以找到在主线程和隔离线程之间进行通信的唯一方法是发送和调用然后从主线程.但这是主线程将一些数据传递给隔离的好方法.
如果我希望隔离是生成信息的那个人怎么办?就像一个游戏引擎,它可以完成工作中的所有物理,然后将更新的世界信息发送到主线程?在JavaScript中,您可以随时发送数据.在达特有一种有效的方式吗?或者我是否仍然需要等待主线程给我打电话然后传递给它?
PS我想知道,是否调用然后阻止线程直到回复完成?
我有一个界面A:
interface A {
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个B级:
class B implements A {
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个使用A列表的方法:
void process(ArrayList<A> myList) {
}
Run Code Online (Sandbox Code Playgroud)
我想传递一个B列表:
ArrayList<B> items = new ArrayList<B>();
items.add(new B());
process(items);
Run Code Online (Sandbox Code Playgroud)
但是有一个类型不匹配的错误.我理解为什么.ArrayList是一类本身,它已无法正常工作,从转换ArrayList<B>到ArrayList<A>.是否有一种快速且资源方面的方式来形成适合传递给我的process方法的新数组?