我有一门课:
public class TextViewAttachedProperties {
public static final String NAMESPACE = "http://schemas.android.com/apk/lib/com.zworks.mvvmandroid";
private static final Handler uiHandler = new Handler(Looper.getMainLooper());
private static final String DATA_CONTEXT = "DataContext";
private static final String TEXT = "Text";
private static final Listener<PropertyChangedEventArgs<String>> textChanged = new Listener<PropertyChangedEventArgs<String>>() {
@Override
public void onEvent(final PropertyChangedEventArgs<String> args) {
final TextView element = (TextView) args.getSource();
if (element != null && args.getNewValue() != null)
uiHandler.post(new Runnable() {
@Override
public void run() {
element.setText(args.getNewValue());
}
});
}
};
// This two statements have side effects I'm counting on to execute
private static final AttachedProperty<Object> dataContext = AttachedProperty
.newProperty(DATA_CONTEXT, NAMESPACE, TextView.class, null);
private static final AttachedProperty<String> text = AttachedProperty
.newProperty(TEXT, NAMESPACE, TextView.class, "", textChanged);
}
问题是,只有我实例化了那个类,它才会运行。
不管怎样,我怎么能强迫它运行呢?
静态初始化块在JVM第一次看到类的提及时运行。也就是说,当类加载时。
您不需要创建实例,但您确实需要以某种方式提及/引用类。有很多方法可以做到这一点。
使用
Class.forName("TextViewAttachedProperties");
javadoc声明
返回与给定字符串名称的类或接口关联的Class对象。调用此方法相当于:
Class.for名称
其中currentLoader表示当前类的定义类加载器。
其中true
指定
初始化-是否必须初始化类
初始化类时,将执行静态
初始化器,并初始化静态
字段。
还有其他初始化类型的方法,例如访问该类型的static
非常量变量、调用该类的static
方法或实例化该类。它们都在Java语言规范中描述。或多或少
我正在尝试将ChromeOptions传递给我的驱动程序以允许弹出窗口。我将TestNG与@BeforeClass、@Test和@AfterClass注释一起使用。。我正在尝试启用弹出窗口,并且使用以下方法成功地实现了这一点。 虽然这确实有效,但它会打开webdriver,然后打开另一个带有选项的驱动程序。我不希望出现两个Web驱动程序。。我只想把这些选项传递给第一个webdriver!我使用一个
如下面的代码所示,我可以调用非静态成员函数 ,而无需实例化该类的对象。仅当函数未绑定到任何其他成员时,这才有可能。例如,我不能以类似的方式调用。 在我看来,如下代码所示的调用的行为就像调用静态成员函数。这样的结论正确吗?这种行为如何证明是正当的?
我有以下代码: 到目前为止,代码还可以,但我无法在主方法中实例化'in',比如,因为它显示
我想强制子类实现我母亲类的一个实现方法。我看到了一个已实现方法的Java-Force实现,但我无法将我的母类转换为抽象类。 在这个例子中,我想强制myClass实现myMethod。 抱歉我的英语...
问题内容: 我有以下代码: 到目前为止,代码还不错,但是我无法像显示的那样在main方法中实例化 我该怎么做?我不想使我的课堂静止。 问题答案: 你还必须参考其他外部类。 如果内在是静态的,那将是
问题内容: 有什么方法可以避免在初始化类时调用类,例如从类方法中调用? 我试图在Python中创建一个不区分大小写和标点符号的字符串类,以进行有效的比较,但是在不调用的情况下创建新实例时遇到了麻烦。 我应该替换为什么以用切片初始化新对象? 编辑: 受到以下答案的启发,已对初始化程序进行了编辑,以快速检查是否没有参数。 问题答案: 在此示例中,使用元类提供了一个不错的解决方案。元类的用途有限,但效果