利用继承打印参考

时间:2015-12-14 02:35:59

标签: java inheritance arraylist extends

我遇到的问题是如何从多个代码区域调用变量来打印ArrayList就是一个例子:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Scanner;

public class ReferenceHolder extends java.lang.Object{
ArrayList<Reference> references = new ArrayList<Reference>();



public void printAllBibtexEntries() {
    Reference.getBibtexEntry(null, null, null, 0, 0, 0);
    // TODO Auto-generated method stub

}

public void addReference(Book book ) {
    String author = Reference.getAuthor();
    System.out.println(references.size());
    references.add(new Book(author, null, null, 0));
    // TODO Auto-generated method stub
}

public void addReference(Article article) {
    references.add(new Article(null, null, 0, null, 0, 0));
    // TODO Auto-generated method stub


}

}

问题是我想从“Book”和“Article”类调用变量,利用“addReference”方法中的信息并通过printAllBibtexEntries方法打印信息。关于如何从BibtexEntries变量而不是null打印的任何提示?

P.S:即使我在references.add()中插入了变量,它仍然会返回“null”。该示例位于addReference(Book book)中,属于“作者”。

1 个答案:

答案 0 :(得分:1)

为Books / Articles

创建界面或抽象类

例如:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg_gradient"
    android:orientation="vertical" >

    <fragment
        android:id="@+id/current_fragment"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        />
</RelativeLayout> 

现在您可以将列表声明为:

interface IReference {
     public String getAuthor();
}

class Book implements IReference {
    ... implement the interface
}

class Article implements IReference {
    ... implement the interface
}

ArrayList<IReference> references = new ArrayList<IReference>();