我理解(如这个问题和文档中所解释的)X or 的类型提示Y可以表示为:
Union[X,Y]
Run Code Online (Sandbox Code Playgroud)
但是如何表达X and Y的类型提示呢?当表达相关对象必须是 和 的子类时,这将很有X用Y。
只要所有继承这两者X并Y事先已知的类,以下示例就可以工作:
class X: pass
class Y: pass
class A(X,Y): pass
class B(X,Y): pass
def some_function(arg: Union[A,B]):
pass
# do stuff with arg that only depends on inherited members from X and Y
Run Code Online (Sandbox Code Playgroud)
但是如果另一个依赖于上面代码的包定义了:
class C(X,Y): pass
Run Code Online (Sandbox Code Playgroud)
Csome_function也将按设计工作。我正在寻找更好的类型提示来使用,而不是Union[X,Y]包含任何可能的子类X和Y。
我理解解决方法可能是定义:
class XY(X,Y): pass
Run Code Online (Sandbox Code Playgroud)
然后将其用作基类和类型提示:
class A(XY): pass
class B(XY): …Run Code Online (Sandbox Code Playgroud) 我从其他问题中了解到应用程序和流程之间的区别。但我希望我能对这段代码中发生的事情得到一些澄清。
(application processes whose visible is true)
Run Code Online (Sandbox Code Playgroud)
“应用程序进程”是指由应用程序启动的所有进程吗?这是否意味着有些进程不是由应用程序启动的?或者我可以将其切换到“进程”并取出“应用程序”吗?
我正在尝试创建我的第一个列表,并且我遇到了错误.
这是我用于列表模型的模板:
private ListModel getListModel() {
String[] arrayOfStrings = new String[3];
arrayOfStrings[0] = "one";
arrayOfStrings[1] = "two";
arrayOfStrings[2] = "three";
ListModel listModel = new DefaultListModel();
for (int i=0;i<arrayOfStrings.length;i++) {
listModel.addElement(arrayOfStrings[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
error: cannot find symbol
listModel.addElement(arrayOfStrings[i]);
symbol: method addElement(String)
location: variable listModel of type ListModel
Run Code Online (Sandbox Code Playgroud)
我仍然是使用接口和列表的新手.我下载了一个用于制作列表的示例代码,它们的代码非常相似.我错过了什么?我导入了示例代码导入的每一件事.