Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 利用继承打印引用_Java_Inheritance_Arraylist_Extends - Fatal编程技术网

Java 利用继承打印引用

Java 利用继承打印引用,java,inheritance,arraylist,extends,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>

关于如何从多个代码区域调用变量以打印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


}

}
import java.util.ArrayList;
导入java.util.Collection;
导入java.util.Scanner;
公共类ReferenceHolder扩展了java.lang.Object{
ArrayList引用=新的ArrayList();
public void printallbitexentries(){
getBibtexEntry(null,null,null,0,0);
//TODO自动生成的方法存根
}
公共参考(书籍){
字符串author=Reference.getAuthor();
System.out.println(references.size());
添加(新书(作者,空,空,0));
//TODO自动生成的方法存根
}
公共无效添加参考(第条){
添加(新文章(null,null,0,null,0,0));
//TODO自动生成的方法存根
}
}
问题是我想从“Book”和“Article”类调用变量,利用“addReference”方法中的信息,并通过printallbitexentries方法打印信息。关于如何从BibtexEntries变量而不是null打印的任何提示


附言:即使我在references.add()中插入了变量,它仍然会返回“null”。addReference(Book Book)中的示例与“author”有关。

为书籍/文章创建一个接口或抽象类

例如:

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>();
public void printAllBibtexEntries() {
    IReference ref = (IReference)Reference.getBibtexEntry(null, null, null, 0, 0, 0);
    System.out.println(ref.getAuthor());
    // TODO Auto-generated method stub
}