这是一个Java通用模式:
public <T> T getResultData(Class<T> resultClass, other_args) {
...
return resultClass.cast(T-thing);
}
Run Code Online (Sandbox Code Playgroud)
典型的通话看起来像:
DoubleBuffer buffer;
buffer = thing.getResultData(DoubleBuffer.class, args);
Run Code Online (Sandbox Code Playgroud)
当期望的返回类型本身是通用的时候,我从来没有弄清楚如何干净地使用这个模式.要"具体",如果这样的函数想要返回Map<String,String>怎么办?因为你不能获得泛型的类对象,当然,唯一的选择是传递Map.class,然后你需要一个强制转换和一个@SuppressWarning毕竟.
一个人最终会打电话:
Map<String, String> returnedMap;
returnedMap = thing.getResultData(Map.class, some_other_args);
Run Code Online (Sandbox Code Playgroud)
现在回到需要强制转换并抑制警告.
我想人们可以从java.lang.reflect.Type家里取出一些东西而不是它Class,但那些并不是特别容易编造的.看起来像:
class Dummy {
Map<String, String> field;
}
...
Type typeObject = Dummy.class.getField("field").getGenericType();
Run Code Online (Sandbox Code Playgroud)
鉴于此,被调用函数可以提取基类型并将其用于转换或newInstance,但虚拟字段业务肯定看起来很难看.
请注意,这样的函数并不总是调用newInstance.显然,如果他们这样做,他们就不需要打电话了resultClass.cast.
是否可以从数组中向JavaScript函数发送可变数量的参数?
var arr = ['a','b','c']
var func = function()
{
// debug
alert(arguments.length);
//
for(arg in arguments)
alert(arg);
}
func('a','b','c','d'); // prints 4 which is what I want, then 'a','b','c','d'
func(arr); // prints 1, then 'Array'
Run Code Online (Sandbox Code Playgroud)
我最近写了很多Python,这是一个很好的模式,能够接受varargs并发送它们.例如
def func(*args):
print len(args)
for i in args:
print i
func('a','b','c','d'); // prints 4 which is what I want, then 'a','b','c','d'
func(*arr) // prints 4 which is what I want, then 'a','b','c','d'
Run Code Online (Sandbox Code Playgroud)
在JavaScript中是否可以发送一个数组作为参数数组?
嗨,有人可以帮我找到文档(我不确定要查找什么)能够使用Qt Webkit更改WebPage上的输入文本框内的文本 - 我想基本上创建一个功能,以便人们可以记住他们在网页上的输入并保存为预设..单击预设后 - 自动填写.
我希望能够在注释字段中获取用户输入的文本并检查URL类型表达式,如果存在,则在显示注释时添加锚标记(到url).
我在服务器端使用PHP,在客户端使用Javascript(使用jQuery),所以我应该等到它显示之前检查URL吗?或者在将锚标记插入数据库之前添加它?
所以
<textarea id="comment">check out blahblah.com or www.thisthing.co.uk or http://checkthis.us/</textarea>
Run Code Online (Sandbox Code Playgroud)
变
<div id="commentDisplay">check out <a href="blahblah.com">blahblah.com</a> or <a href="www.thisthing.co.uk">www.thisthing.co.uk</a> or <a href="http://checkthis.us/">http://checkthis.us/</a></div>
Run Code Online (Sandbox Code Playgroud) 我知道可以通过创建符号链接来创建动态可变的Default.png.但这在iPhone SDK 3.0中是不可能的(仅在2.0中).我怎么能在3.0中做到这一点,或者这是不可能的?蒂姆
这适用于iPhone OS 2.0 http://collison.ie/blog/2008/11/dynamic-defaultpng-files-on-the-iphone,但不再适用于iPhone OS 3.0.默认屏幕始终为黑色.
我可以更改documents-folder中的默认屏幕,symbolic-link会链接到该文件.我通过浏览到模拟器中的app-folder测试了它.我在documents-directory中看到了正确的文件,我看到符号链接指向该(右)文件.
如何从TickCounts转换为毫秒?
这是我用过的:
long int before = GetTickCount();
long int after = GetTickCount();
Run Code Online (Sandbox Code Playgroud)
我希望它在几秒钟内有所不同.
我可以在主屏幕上创建相同类型的导航吗?也就是说,我想要使用触摸和拖动之间可以导航的不同屏幕?我还没有看到任何关于它的事情,所以是时候问:)
哦,我在谈论Android的应用程序:)
我理解如何使用case语句返回不同的值:
SELECT CASE Color
WHEN 'Blue' THEN 'Water'
WHEN 'Black' THEN 'Oil'
WHEN 'Red' THEN 'Blood'
END
FROM dbo.Liquid
Run Code Online (Sandbox Code Playgroud)
有没有办法用它来控制流量而不是IF-ELSE,即
DECLARE @Color varchar()
SELECT @Color = Color FROM dbo.Liquid WHERE ID = @MyID
CASE (@Color)
WHEN 'Blue' THEN SELECT 'Water'
WHEN 'Black' THEN SELECT 'Oil'
WHEN 'Red' THEN PRINT 'HELP! I''m bleeding!'
END
Run Code Online (Sandbox Code Playgroud) 我基本上试图实现一个策略模式,但我想将不同的参数传递给"接口"实现(继承自同一个对象)并且不知道这是否可行.也许我选择了错误的模式,我得到类似的错误
'StrategyA'没有实现继承的抽象成员'void DoSomething(BaseObject)'
使用以下代码:
abstract class Strategy
{
public abstract void DoSomething(BaseObject object);
}
class StrategyA : Strategy
{
public override void DoSomething(ObjectA objectA)
{
// . . .
}
}
class StrategyB : Strategy
{
public override void DoSomething(ObjectB objectB)
{
// . . .
}
}
abstract class BaseObject
{
}
class ObjectA : BaseObject
{
// add to BaseObject
}
class ObjectB : BaseObject
{
// add to BaseObject
}
class Context
{
private Strategy _strategy;
// …Run Code Online (Sandbox Code Playgroud) c# inheritance abstract-class design-patterns strategy-pattern
我正在使用NLog来记录我的asp.net mvc(C#)应用程序中的异常.
NLog无法在发布模式下工作.在调试模式下运行时也一样.
可能是什么问题?有没有解决这个问题?