我在博客上看到它建议以下是使用getCode(int)Java枚举进行"反向查找"的合理方法:
public enum Status {
WAITING(0),
READY(1),
SKIPPED(-1),
COMPLETED(5);
private static final Map<Integer,Status> lookup
= new HashMap<Integer,Status>();
static {
for(Status s : EnumSet.allOf(Status.class))
lookup.put(s.getCode(), s);
}
private int code;
private Status(int code) {
this.code = code;
}
public int getCode() { return code; }
public static Status get(int code) {
return lookup.get(code);
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说,静态地图和静态初始化程序看起来都是个坏主意,我的第一个想法就是将查询编码为:
public enum Status {
WAITING(0),
READY(1),
SKIPPED(-1),
COMPLETED(5);
private int code;
private Status(int code) {
this.code = code;
} …Run Code Online (Sandbox Code Playgroud) 我的应用程序在我的三星Galaxy Tab上调试时给出了一个anr.该设备可在Eclipse中的DDMS中查看,我可以使用DDMS文件资源管理器浏览SD卡.但我无法浏览到数据目录(当我单击此目录旁边的下拉箭头时,显示该目录已打开).有关如何获取文件的任何提示?
我在javascript中将文件上传到aws s3,而AFAIK他们都需要mimetype才能正常运行.是否有一个脚本可以自动将文件名映射到我可以使用的mimetypes?
编辑:如果亚马逊有办法自动处理更好的mimetypes.
当我在数据库中搜索某些内容时,我正在使游标索引超出范围"索引0请求:大小为0"错误.我在我的数据库中搜索的项目目前不存在,我知道这一点,但我如何处理项目不存在的查询.
我发了一个电话号码
public String searchNumber(Context context,String number){
ContactDB db = new ContactDB(context);
db.open();
Cursor curs = db.getIdFromPhone(number);
String test = curs.getString(curs.getColumnIndex(db.PHONE_NUMBER)); //fails here
curs.close();
db.close();
return test;
}
Run Code Online (Sandbox Code Playgroud)
询问
public Cursor getIdFromPhone(String where){
Cursor cur = db.query(DATABASE_TABLE, new String [] {ID,PHONE_NUMBER}
, PHONE_NUMBER + "='" + where + "'",null,null,null,null);
if(cur != null)
cur.moveToFirst();
return cur;
}
Run Code Online (Sandbox Code Playgroud)
测试搜索
from = messages.getDisplayOriginatingAddress();
String dbNumber = searchNumber(arg0,from);
if(dbNumber.equals(from)){
//do stuff
}else{
//do other stuff
}
Run Code Online (Sandbox Code Playgroud)
如果找不到数字,它应该执行else语句,但它没有那么远
我知道一般理论,Thread,QRunnable和QThreadPool.它是如何适应的?我的意思是当创建一个QRunnable实例并分配给ThreadPool时,启动一个线程意味着什么?多个线程可以访问相同的QRunnable吗?一个QRunnable是否必须与一个工作线程一对一映射?
现在,我most用作寻呼机.虽然它为man页面提供了有用的语法高亮显示,但它缺少用于其他任何内容的彩色语法高亮显示(我特意寻找diff/C++).
同时,这pygments是一个很棒的节目.我可以用它轻松制作彩色输出:
# ./pygmentize -f console256 ${file}
hg diff | ./pygmentize -f console256 -l diff
Run Code Online (Sandbox Code Playgroud)
现在,我希望能够分页输出,所以我只使用:
# ./pygmentize -f console256 ${file} | most
hg diff | ./pygmentize -f console256 -l diff | most
Run Code Online (Sandbox Code Playgroud)
此时,大多数将所有着色控制字符转储到我的屏幕上,如下所示:
^[[38;5;28;01mclass^[[39;00m ^[[38;5;21;01mheap_allocator^[[39;00m
{
^[[38;5;28;01mpublic^[[39;00m^[[38;5;241m:^[[39m
Run Code Online (Sandbox Code Playgroud)
当然,这是不可读的.我查看了man页面most,但我找不到任何"嘿,显示那些控制字符作为颜色而不是打印它们"的选项. less具有相同的垃圾行为most,但more显示颜色完美,具有明显的存在限制more.
是否有一个寻呼机支持语法高亮或一些参数和程序的疯狂组合我可以串起来使这个工作?最后,我想从Mercurial得到差异和日志突出显示,所以也许有一个捷径...
我正在尝试在GCC C应用程序中使用线程(第一次!),它在非线程模式下工作正常.当我运行它时,一些线程给出的结果都是零,而不是所需的答案(我知道用于检查目的),但是每次运行它时给出零的线程都不一样.给出非零答案的答案是正确的,因此代码似乎运行正常.我想知道是否有人可以指出我可能有一些非线程安全的区域.
我自己的想法可能是由于我如何收集结果或内存分配 - 我使用malloc和free而在StackOverflow中的其他地方我看到GCC malloc被认为是线程安全的,如果与-lpthread链接(我正在做).什么都不使用全局/静态变量 - 一切都作为函数参数传递.
为了将结果传递回main,我的线程例程使用了一组结构.每个线程都写入此数组的不同元素,因此它们不会尝试写入同一个内存.也许我在编写结果时需要使用某种形式的锁定,即使它们没有转到结构数组的相同元素?
我在这里遵循线程代码的配方:https: //computing.llnl.gov/tutorials/pthreads/#Abstract
我附加(简化)代码提取,以防这提供任何线索(我可能已经省略/修改了错误的东西,但我不是要求任何人发现错误,只是一般的方法).
typedef struct p_struct { /* used for communicating results back to main */
int given[CELLS];
int type;
int status;
/*... etc */
} puzstru;
typedef struct params_struct { /* used for calling generate function using threads */
long seed;
char *text;
puzzle *puzzp;
bool unique;
int required;
} paramstru;
/* ========================================================================================== */
void *myfunc(void *spv) /* calling routine for use by threads */
{
paramstru *sp=(paramstru …Run Code Online (Sandbox Code Playgroud) 此问题类似于" 基于http请求检测Web应用程序中的移动浏览器的标准方法 ",但邮件客户端除外.例如,如果在内置iPhone邮件客户端上打开电子邮件消息,它将显示专门为iPhone设置的消息版本.如果在平板电脑或桌面上打开,它将显示为电子邮件的完整版本.这与原则上类似于具有移动友好版本的网站的网站通过检测用户代理自动加载 - 但对于电子邮件客户端.
那么 - 是否可以检测用于打开电子邮件的邮件客户端并相应地格式化邮件?也许是一种检测屏幕分辨率的方法?
我正在使用Rails 3,我有两个型号的EquipmentGroup和Reservation.我希望预订成为设备组的嵌套资源,以便我可以使用以下URL访问它们:
/equipment_groups/:equipment_group_id/reservations/:id
Run Code Online (Sandbox Code Playgroud)
但是,我不想为设备组创建路由.我可以通过以下方式实现这一点,但它似乎是一个黑客:
resources :equipment_groups, :only => [] do
resources :reservations
end
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?我似乎无法在文档中轻松找到答案.
这是一个与 C++ 中对象初始化相关的问题。
我有一组类(不是实例),它们继承自一个公共基类,我需要它们在程序启动时在容器(特别是地图)中注册有关它们自己的信息。
问题是我需要它是动态的。容器定义在一个独立的项目中,不同于类。我宁愿避免制作库的多个硬编码版本,每个使用它的程序中的每一组类都有一个。
我想过在每个子类中都有一个特殊类的静态实例,这将在其构造函数中进行注册。但是,我发现没有办法保证在构造这些对象之前构造容器。
我还应该注意,在创建这些子类的任何实例之前,容器中关于子类的信息应该可用。
有没有办法做到这一点,或者在一般情况下模仿 C++ 中的静态构造函数?