我还在学习JAVA。我经常遇到类似这样的JAVA代码:
....
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue)
....
ComboBox<String> var;
....
有人可以告诉我该代码的用法吗?
谢谢你,哈潘。
答案 0 :(得分:1)
<? extends Boolean>
表示可以在此处使用任何扩展Boolean
类的类。我们说你有
class MyBoolean extends Boolean {
...
}
然后可以使用此MyBoolean
类代替<? extends Boolean>
基本上你可以调用changed
函数,如下所示
ObservableValue<MyBoolean> observable = new ObservableValue<MyBoolean>();
changed(observable ,true, false);
答案 1 :(得分:0)
这与java中的Generics有关。 让我试着简单解释一下。 在仿制药之前:
List colourList = new ArrayList();
这个colourList可以保存任何对象。
使用泛型:
示例:List<String> colourList = new ArrayList<String>();
这里colourList是一个List,它只能保存String Type作为其项目。
泛型类型定义将具有类型的占位符。我们提供了一个类/类型作为占位符的参数,并为泛型类型创建了一个新对象。
或者我们也可以使用Wildcard(?)代替占位符 示例:
public static List<?> topFive(List<?> list) {
return list.subList(0, 5);
}
在这里,我们可以传递任何类型的列表。
希望这对你有用。