在面向对象编程中,继承和虚拟方法是创建可扩展代码的常见方案.在更复杂的设置中,工厂方法(或依赖框架)有助于扩展基本代码.
函数式编程(例如F#)中创建可扩展代码的常用方法是什么?
我有一个叫做缓冲区的ByteBuffer.我想生成一个新的缓冲区,其中包含从buffer.position()到缓冲区末尾的所有字节,后跟从位置0到buffer.position() - 1 的所有字节.
本质上,我想将当前位置的字节移动到缓冲区的开头,同时将当前开始结束.
为了说明,如果这是我的ByteBuffer(P当前位置在哪里,数字0-9表示字节位置):
|0123456789|
P
Run Code Online (Sandbox Code Playgroud)
...然后我想要形成一个看起来像这样的新ByteBuffer:
|3456789012|
P
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的(并且不起作用):
ByteBuffer tmpByteBuffer = buffer.slice();
tmpByteBuffer.limit(buffer.capacity());
Run Code Online (Sandbox Code Playgroud)
这是错误(这是来自Android上的LogCat - 虽然我不认为该问题是特定于Android的):
12-22 03:49:44.303: ERROR/AndroidRuntime(10399): Uncaught handler: thread Thread-11 exiting due to uncaught exception
12-22 03:49:44.313: ERROR/AndroidRuntime(10399): java.lang.IllegalArgumentException
12-22 03:49:44.313: ERROR/AndroidRuntime(10399): at java.nio.Buffer.limit(Buffer.java:239)
12-22 03:49:44.313: ERROR/AndroidRuntime(10399): at com.chaimp.audiolistener.AudioListener.captureSamples(AudioListener.java:175)
12-22 03:49:44.313: ERROR/AndroidRuntime(10399): at com.chaimp.precisiontuner.PrecisionTuner$1.run(PrecisionTuner.java:28)
12-22 03:49:44.313: ERROR/AndroidRuntime(10399): at java.lang.Thread.run(Thread.java:1096)
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我做错了什么?
而且,有更好的方法吗?
感谢您对此的任何帮助.
如何在java中确定wifi网络接口名称?
我正在制作一款需要当前股票价格的iPhone应用程序.
我从下面给出的链接接收CSV格式的数据.
http://finance.yahoo.com/d/quotes.csv?s=RHT+MSFT&f=sb2b3jk
是否可以将CSV格式转换为NSData或NSString格式?如果是,我该怎么办?
对此有什么其他选择?
我正在编写一个PHP框架,它允许PHP开发人员使用PHP类创建带有表单,网格,tabpanel和菜单的ExtJS接口.
为了创建一个的TabPanel,例如,PHP类被实例化与网址的阵列,其获得动态加载,当用户点击一个标签报头.
为了做到这一点,我使用以下Javascript函数,它通过AJAX调用加载PHP页面并执行其中的任何脚本.
function loadViewViaAjax(url) {
Ext.Ajax.request({
url: url,
success: function(objServerResponse) {
var responseText = objServerResponse.responseText;
var scripts, scriptsFinder=/<script[^>]*>([\s\S]+)<\/script>/gi;
while(scripts=scriptsFinder.exec(responseText)) {
eval(scripts[1]);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
我经常看作为这个问题的答案,有通常不需要使用eval() ,因为你需要的eval做什么()可以通常可以在其他方式来实现.我也理解在通过AJAX加载的PHP页面中执行脚本会带来安全风险,需要以其他方式锁定,所以我想找到另一种更安全的方法来做到这一点.
什么是动态加载,并从服务器没有的eval(执行JavaScript)的另一种方式,让我有相同的功能我用上面的脚本现在要做的,即TabPanels其负载从服务器执行JavaScript只有当标签点击标题?
我正在使用Azure存储来提供静态文件blob,但我希望在提供服务时为文件/ blob添加Cache-Control和Expires标头以降低带宽成本.
像CloudXplorer和Cerebrata的Cloud Storage Studio这样的应用程序提供了在容器和blob上设置元数据属性的选项,但在尝试添加Cache-Control时会感到不安.
有人知道是否可以为文件设置这些标头?
我正在开发一个涉及两种URL的项目,一种遵循标准CI模式
http://fancysite.com/controller/
Run Code Online (Sandbox Code Playgroud)
另一个提出以下方案:
http://fancysite.com/category
Run Code Online (Sandbox Code Playgroud)
我希望第二个调用默认控制器handlecategory(或类似的东西)函数category作为参数.
如果您还可以告诉我如何让像http://place.fancysite.com/这样的网址调用相同的函数place作为参数传递,如果没有类别跟随该URL,或两者都是如此place,category如果它确实如此.
附加数据:我已经知道所有控制器,地点,类别的名称.
php model-view-controller codeigniter url-routing codeigniter-url
我可以使用仅返回一个表中的数据的JPQL轻松完成此操作.
SELECT m1 FROM MasatosanTest m1
Run Code Online (Sandbox Code Playgroud)
这意味着返回一种数据类型.所以我可以将查询结果存储到指定类型的List中:
List<MasatosanTest> mt = query.getResultList();
Run Code Online (Sandbox Code Playgroud)
代码段
private static final String JPQL_TEST = "SELECT m1 FROM MasatosanTest m1;
@Path("innerJoin")
@GET
@Produces("application/json")
public List<MasatosanTest> getJoinedResult() {
System.out.println("getJoinedResult called");
EntityManager em = null;
List<MasatosanTest> mt = null;
try {
em = EmProvider.getDefaultManager();
Query query = em.createQuery(JPQL_TEST);
mt = query.getResultList();
}
catch(Exception e) {
System.out.println("MasatosanTestResource.java - getJoinedResult ERROR: " + e);
}
finally {
if(em != null) {
em.close();
}
}
return mt;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试涉及2个表的JPQL ....
询问
SELECT …Run Code Online (Sandbox Code Playgroud) 我可以使用客户端脚本'javascript'获取客户端屏幕分辨率,
但我不想这样做.
我也试过Request.Browser.ScreenPixelsWidth,但它总是返回固定宽度680.
任何的想法?
我想学习如何生成PDF,我不想使用任何第三方工具,我想在代码中自己创建它.到目前为止我看到的唯一的例子是我在第三方dll上打开反射器时看到的代码,看看发生了什么.不幸的是DLL的,到目前为止我已经看到了似乎击中user32.dll中和gdi32.dll里面,以帮助创建PDF文档,我的问题是我不知道他们在做什么,更重要的是为什么呢?
有没有人有任何好的教程或参考,这可能指向我正确的方向.
提前致谢.
java ×3
php ×2
.net ×1
ajax ×1
android ×1
asp.net ×1
azure ×1
bytebuffer ×1
c# ×1
codeigniter ×1
csv ×1
eval ×1
extjs ×1
f# ×1
gdi ×1
gdi+ ×1
iphone ×1
javascript ×1
jpa ×1
jpql ×1
networking ×1
objective-c ×1
pdf ×1
url-routing ×1
wifi ×1