"<>"的功能是什么? JAVA中的代码?

时间:2014-03-14 17:47:26

标签: java generics

我还在学习JAVA。我经常遇到类似这样的JAVA代码:

....
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue)
....
ComboBox<String> var;
....

有人可以告诉我该代码的用法吗?

谢谢你,哈潘。

2 个答案:

答案 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);
  }

在这里,我们可以传递任何类型的列表。

希望这对你有用。