下面的代码是编译错误。 可能尚未初始化本地可用
Template.PanelEditAbout.rendered = function() {
Meteor.subscribe("page", Yourslug,{
onReady: function () { console.log("onReady And the Itemns actually Arrive", arguments); },
onError: function () { console.log("onError", arguments); }
});
};
并由此
修复String str;
my_obj.setValue(str);
那么什么是null实例? null和未初始化之间有什么区别。
为什么这样做?
我的班级
String str = null;
my_obj.setValue(str);
我初始化了obj而不是obj.str。但没有这样的编译错误......
class MyClass {
String str;
}
在发布此问题之前,我已经阅读了所有人的建议。也许它是重复的,但我并没有从中得到任何想法。
答案 0 :(得分:2)
局部变量不会获得默认值。它们的初始值是未定义的,没有通过某种方式分配值。在使用局部变量之前,必须初始化它们。
当您在类级别(作为成员,即作为字段)和方法级别声明变量时,会有很大的不同。
如果在类级别声明字段,则会根据其类型获取默认值。如果在方法级别或作为块声明变量(意味着{}中的任何代码),则不会获取任何值并保持未定义,直到他们获得一些起始值,即分配给它们的某些值。
必须在访问本地变量之前对其进行初始化。 未初始化意味着您尚未为该实例创建对象。分配值将创建一个使用它的对象。
String str ;
上面的代码表示,您刚刚声明了它。但是,不能使用它,直到它被赋予一些实际值或为空。
可以在 this link
上验证对问题的引用