2016-01-13 43 views
0

只是一个简单的问题。我有一个jar文件,我想将它集成到我的项目中。 jar文件的反编译的版本是这样的:与瓶子集成

public abstract class SinglyLinkedList 

protected SinglyLinkedList.Item head; 

public void addFront(String s) { 
if (head == null) { 
    head = new SinglyLinkedList.Item(s); 
} 
else { 
    SinglyLinkedList.Item insert = new SinglyLinkedList.Item(s); 
    next = head; 
    head = insert; 
} 
} 

public void add(String[] array) { String[] arrayOfString; 
int j = (arrayOfString = array).length; for (int i = 0; i < j; i++) 
{ String s = arrayOfString[i]; 
addFront(s); 
} 
} 

public String toString() 
{ 
if (head == null) { 
    return "empty list"; 
} 
String s = ""; 

for (SinglyLinkedList.Item helper = head; next != null; helper = next) { 
    s = String.valueOf(s) + value + ", "; 
    s = String.valueOf(s) + value; 
    return s; 
} 

public abstract void sort(); 

protected class Item 
{ 
    public Item next; 
    public String value; 
    public Item(String value) { 
     this.value = value; 
    } 
} 
} 

现在我想建立在我的其他类的新链表,但是这并不工作:

private SinglyLinkedList linkedlist; 

public SelectionSortableList(){ 
    this.linkedlist = new SinglyLinkedList(); 
} 

他不能实例化。可以请有人告诉我他为什么不想实例化它?预先感谢您。

回答

2
public abstract class SinglyLinkedList 

因为这是一个abstract类。 abstract类不能被实例化。

你需要extend,并实现以下abstract方法:

public abstract void sort(); 

一旦你扩展类的所有非私有方法是直接访问到你的超类。

你的类应该是这样的:

class SelectionSortableList extends SinglyLinkedList { 
    @Override 
    public void sort() { 
    // provide you implementation here. 
    } 
} 
+0

我试图延长之前,但我只得到“SinglyLinkedList不能被解析为一个类型”。我知道,我不能实例化抽象类,但是如何将它集成到其他类中,以便我可以使用它?有没有不同的方法来创建链表? – Maxim

+0

我以前试过,但如果我只写“公共类SelectionSortableList扩展SinglyLinkedList”我得到“SinglyLinkedList无法解析为类型” – Maxim

+0

上面的代码看起来像手写代码,它有很多编译问题。请修复它们。 – YoungHobbit