我正在使用泛型创建B + Tree类。这是我的类声明和构造函数的开头:
/**
* B+ Tree generic type
*
* @author Sofian Benaissa
*/
public class BplusTree<K extends Comparable<K>,V>
{
private static int maxKeys = 10;
private Node<K> root;
private Node<K> currentLeaf;
/**
* Default Constructor
*/
public BplusTree()
{
root = new Node<K>(null, 0);
currentLeaf = root;
}
我在这里创建了一个关于这个类的完整源代码的要点:https://gist.github.com/sfyn/7622365
接下来我试图在另一个文件中实例化这个类。这一行:
private BplusTree<String><String>;
在构造函数中跟随此行:
bptree = new BplusTree<String><String>();
编译时抛出这些错误:
src/FileParser.java:30: error: <identifier> expected
private BplusTree<String><String> bptree;
^
src/FileParser.java:30: error: <identifier> expected
private BplusTree<String><String> bptree;
^
src/FileParser.java:30: error: <identifier> expected
private BplusTree<String><String> bptree;
^
src/FileParser.java:39: error: '(' or '[' expected
bptree = new BplusTree<String><String>();
^
src/FileParser.java:39: error: illegal start of expression
bptree = new BplusTree<String><String>();
^
5 errors
答案 0 :(得分:4)
语法
private BplusTree<String><String> bptree;
不正确。
正确的语法是以逗号分隔的类型参数列表
private BplusTree<String, String> bptree = new BplusTree<String, String>(); /* or new BplusTree<>(); in Java 7 */