在环顾四周寻找一个体面的图书馆用Java播放视频之后,我已经不知所措了.周围的每个人都在尖叫不要使用JMF,因为它已经过时,过时而且需要用户安装它,其他替代品如VLCJ似乎很好,如果它们工作但仍然相对不稳定并依赖大量本机代码,并且至于处理DVD,在免费图书馆看起来像金尘!
基于以上(或其他任何你能想到的),人们会推荐哪些选项,还有其他任何我错过的合理选择吗?或者其他任何人认为可能在不久的将来可用?
我一直在使用下面的memoizing装饰器(来自伟大的书籍Python算法:掌握Python语言中的基本算法......喜欢它,顺便说一句).
def memo(func):
cache = {}
@ wraps(func)
def wrap(*args):
if args not in cache:
cache[args] = func(*args)
return cache[args]
return wrap
Run Code Online (Sandbox Code Playgroud)
这个装饰器的问题是基于字典的缓存意味着我的所有参数都必须是可清除的.
有没有人有一个允许不可用的参数(例如字典)的实现(或对这一个的调整)?
我知道缺少哈希值意味着"这是否在缓存中?" 变得非常重要,但我只是想我会问.
===编辑给出上下文===
我正在开发一个函数,它返回一个Parnas风格的"使用层次结构"给定模块的字典:依赖项.这是设置:
def uses_hierarchy(requirements):
"""
uses_hierarchy(requirements)
Arguments:
requirements - a dictionary of the form {mod: list of dependencies, }
Return value:
A dictionary of the form {level: list of mods, ...}
Assumptions:
- No cyclical requirements (e.g. if a requires b, b cannot require a).
- Any dependency not listed as a mod assumed …Run Code Online (Sandbox Code Playgroud) 这是布局文件中的一行
<TextView
android:id="@+id/username"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/username"
android:textAppearance="?android:attr/textAppearanceMedium"> Run Code Online (Sandbox Code Playgroud)
在上下文中,究竟是什么意思 android:textAppearance="?android:attr/textAppearanceMedium" Run Code Online (Sandbox Code Playgroud)
是否与"?[package:] [type:] name"相关,如果是,则指的是什么? 我现在有一个工作实现,映射范围的键,如下所示:
class Range {
public:
Range(int from, int to = -1) : _from(from), _to( to >= 0 ? to : from) {}
bool operator < (const Range& item) {
return _to < item._from;
}
bool operator == (const Range& item) {
return item._from >= _from && item._to <= _to;
}
private:
int _from, _to;
};
typedef std::map<Range, MappedType> my_map_type;
Run Code Online (Sandbox Code Playgroud)
很酷的是,我能做到:
my_map_type m;
m[Range(0, 20)] = Item1;
m[Range(30,40)] = Item2;
my_map_type::iterator it = m.find(15);
assert(it->second == Item1);
it = m.find(40);
assert(it->second …Run Code Online (Sandbox Code Playgroud) 我有一个bourne shell脚本,它执行几个任务.其中一项任务是将某些文件移动到某个目录.今天,当我运行脚本时,我收到以下消息:
mv: will not overwrite just-created <filename> with <sameFilename>
Run Code Online (Sandbox Code Playgroud)
其中filename是具有完整路径的原始文件名,而sameFilename是完全相同的文件和路径.我经常每天使用这个脚本,之前从未收到此消息.
在运行脚本后,我重新运行它以查看错误是否仍然存在,并且我无法再次重现它.我在Red Hat 5 Enterprise中运行此脚本.
我知道我可以通过编写自定义类型描述符等来实现这一点,但是这个要求是多么简单; 我错过了一个简单的方法.
能够在BooleanConverter中设置"true"和"false"的字符串可能就是我所需要的,但是标准的BooleanConverter似乎不允许你设置自定义字符串.
gcc似乎没有使用以下代码生成警告.如何让它产生警告?
typedef enum
{
REG8_A,
REG8_B,
REG8_C
}REG8;
typedef enum
{
REG16_A,
REG16_B,
REG16_C
}REG16;
void function(REG8 reg8)
{
}
int main(void)
{
function(REG16_A); // Should warn about wrong enum
}
Run Code Online (Sandbox Code Playgroud) 考虑枚举:
enum day{ MONDAY, TUESDAY};
Run Code Online (Sandbox Code Playgroud)
什么是星期一,星期二.sun文档说它们是特殊类类型枚举中的字段.但是,如果是这样的话,我们为什么要这样做:
day d=day.MONDAY
Run Code Online (Sandbox Code Playgroud)
我的意思是我们如何将类常量赋给类变量.
我想写一个问题从命令行读取文本文件并输出每个唯一字母的计数,按字母顺序排序.在C#中对此程序的任何建议示例:
堆栈溢出
输出:
a 1 c 1 k 1 t 1 s 2