我在我的项目中使用Microsoft文本到文本语音功能.但我有一个问题,实际上并不是直接的.所以:
通常程序员在创建Interface时,会把我作为接口名称的前缀,如IReadable,IEnumerator等.但是我遇到了一些令我震惊的事情.
在Microsoft Text Speech DLL中有这样的东西:SpVoice是接口(他们没有把我作为前缀出于某种原因,我不知道为什么?)和SpVoiceClass.那么你可能会问的问题是什么,这里:
SpVoice speak= new SpVoice(); //I created an object from SpVoice Interface
speak.Speak("Hello StackOverFlow"); //and it speaks and say exactly what I write.
Run Code Online (Sandbox Code Playgroud)
和
SpVoiceClass speak = new SpVoiceClass();
speak.Speak("Hello Kowanichi"); //and it does the same thing.
Run Code Online (Sandbox Code Playgroud)
我没有得到的是如何?第一个如何工作虽然它说它是一个包含大量未实现方法等的接口.
请有人解释我怎么样?
我现在真的很困惑,也许微软的开发人员没有把我的前缀放在那个原因上,它可以被实例化.
提前致谢.希望我清楚地描述我的问题.
这是我想让你看到的图片: alt text http://www.pixelshack.us/images/dngpe9kzoq83obtiami.png
是否有可能确保只有 spring可以实例化一个类,而不是new在编译时通过关键字?(避免意外实例化)
谢谢!
我有一个模型形式,可以创建一个新模型或编辑一个现有模型 - 这很简单,应该可以工作,但由于某种原因我每次都得到一个新的实例.
场景是这是电子商务订单的第一步.用户必须填写一些描述订单的信息(存储在模型中).我创建模型,保存它,然后重定向到下一个视图,以便用户输入他们的cc信息.我将模型粘贴在会话中,因此我不必在下一个视图中进行数据库查找.第二个(cc信息)视图的模板中有一个链接,允许用户返回第一个视图来编辑他们的订单.
# forms.py
class MyForm(forms.ModelForm):
class Meta:
fields = ('field1', 'field2')
model = MyModel
# views.py
def create_or_update(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
m = form.save(commit=False)
# update some other fields that aren't in the form
m.field3 = 'blah'
m.field4 = 'blah'
m.save()
request.session['m'] = m
return HttpResponseRedirect(reverse('enter_cc_info'))
# invalid form, render template
...
else:
# check to see if we're coming back to edit an existing model
# this part works, I …Run Code Online (Sandbox Code Playgroud) 在保存()文档中解释说:
ModelForm的子类可以接受现有的模型实例作为关键字参数实例; 如果提供了这个,save()将更新该实例.如果未提供,save()将创建指定模型的新实例
然而,self.instance在save()总是有一个对象.
那么,我如何判断它instance是现有的还是新创建的?
我正在尝试在页面上的所有CKEditor textareas上设置焦点事件.这是加载到jQuery文档的代码:
for (var i in CKEDITOR.instances) {
alert(CKEDITOR.instances[i].name);
CKEDITOR.instances[i].on('focus', function() {
alert(CKEDITOR.instances[i].name);
remove_invalidation(CKEDITOR.instances[i].name);
});
}
Run Code Online (Sandbox Code Playgroud)
(注意:remove_invalidation()是我写的一个函数,只是删除了textarea上的一些CSS格式.它不应该影响问题.)
我添加了一些警报,看看发生了什么.因此,正如预期的那样,当文档就绪事件启动此代码时,我会立即得到一个带有每个CKEditor textareas名称的textarea.这样可行.
但是,当我在任何textareas中单击以给予它们焦点时,警报总是会弹出页面上最后一个textarea的名称.
如果我在一个类的(非静态)成员函数中声明了一个静态变量,它对该类的每个实例是静态的,还是在所有实例中是静态的?对不起,如果答案显而易见,我无法在任何地方找到它.
编辑:
我接受了zerkms的回答,但这是另一个例子:
<?php
class X {
public function fun($bar) {
static $foo = null;
if ($foo != null) print $foo . "<br/>";
$foo = $bar;
}
}
$x1 = new X();
$x1->fun(42);
$x2 = new X();
$x2->fun(123);
$x2->fun(666);
?>
Run Code Online (Sandbox Code Playgroud)
产出:
42
123
典型情况如下.
class ServiceBase
{
public virtual InstanceBase GetObject() { return null; }
}
class ServiceA : ServiceBase
{
public override InstanceBase GetObject()
{
var v = new InstanceA();
v.Method();
return v;
}
}
class ServiceB : ServiceBase
{
public override InstanceBase GetObject()
{
var v = new InstanceB();
v.Method();
return v;
}
}
class InstanceBase
{
public virtual void Method() { }
}
class InstanceA : InstanceBase
{
public override void Method(){}
}
class InstanceB : InstanceBase
{
public override …Run Code Online (Sandbox Code Playgroud) 我希望实现这样的目标.声明并初始化类似那些原始数据类型的变量.(无需使用new关键字)
MyClass myInstance = 123;
Run Code Online (Sandbox Code Playgroud)
类似于String.只有"String"类型可以做到这一点,它也是一个类!
String myString = "A string!";
Run Code Online (Sandbox Code Playgroud)
我想要一种方法来声明一些变量而不使用newlikenew MyClass(123)
谢谢!
问题
布尔字段的类对象不会将其他布尔值识别为实例.
码
public class Test {
public boolean b;
public static void main(String[] args) {
System.out.println(Test.class.getFields()[0].getType().isInstance(true));
}
}
Run Code Online (Sandbox Code Playgroud)
结果
false
Run Code Online (Sandbox Code Playgroud) 我的问题与存在模糊类型中间值时的类型类实例推导有关
Prelude> :t fromInteger 0
fromInteger 0 :: Num a => a
Prelude> :t (==)
(==) :: Eq a => a -> a -> Bool
Prelude> :t (==) (fromInteger 0)
(==) (fromInteger 0) :: (Eq a, Num a) => a -> Bool
Prelude> :t (==) (fromInteger 0) (fromInteger 1)
(==) (fromInteger 0) (fromInteger 1) :: Bool
Prelude> (==) (fromInteger 0) (fromInteger 1)
False
Run Code Online (Sandbox Code Playgroud)
魔法!目前还不清楚是如何或是否a具体,但代码运行成功!
根据类型推断规则,a 上面表示的类型变量彼此成功统一,因为它们Num a在不同的术语中具有兼容的约束.但是,a永远不要绑定到具体类型.我的问题是,在运行时,该(==)函数使用哪个实例字典(或专业化,等等)?
这是Haskell依赖于简单的二进制memcmp样式比较的情况吗?或者它可能只是在其实例列表中选择第一个实例,Num …