Java 如何将MediaItem类型的对象写入book类型
我还没有真正开始编写代码,但我还不知道怎么做,我想在我真正投入时间之前解决这个问题 基本设置是我有4个类,一个类叫做MediaItem,然后是另外三个扩展MediaItem的类叫做Book、VideoRecord、AudioRecord。 每个变量都有get和set方法 电话号码 文号 借贷者 格雷戈里安卡伦德 现在让我们假设我有一个MediaItems数组,其中包含书籍、视频记录、音频记录对象,但数组将其视为MediaItem 现在假设array MediaItem上有每个对象的3个副本 我的问题是,我想写这个方法,但不知道如何正确地分配它Java 如何将MediaItem类型的对象写入book类型,java,compiler-errors,Java,Compiler Errors,我还没有真正开始编写代码,但我还不知道怎么做,我想在我真正投入时间之前解决这个问题 基本设置是我有4个类,一个类叫做MediaItem,然后是另外三个扩展MediaItem的类叫做Book、VideoRecord、AudioRecord。 每个变量都有get和set方法 电话号码 文号 借贷者 格雷戈里安卡伦德 现在让我们假设我有一个MediaItems数组,其中包含书籍、视频记录、音频记录对象,但数组将其视为MediaItem 现在假设array MediaItem上有每个对象的3个副本 我的
/**
* Renews all books checked out to the given borrower.
*
* @param borrower the borrower
* @param currentDate the date the renewal was requested
* @return an array containing the books that were renewed
*/
public Book[] renew(String borrower, GregorianCalendar currentDate){}
假设我已经使用了for循环并实现了if语句,例如
items[i].getBorrower.equals(borrower){}
正如在方法中一样,我希望返回一个特定的书籍数组,但错误是
public final int MAX_ITEMS = 500;
Books[] book = new Book[MAX_ITEMS];
//forloop here
for( int i = 0; i < MediaItem.length; ++i){}
if (MediaItem[i].getBorrower.equals(borrower))
{
// args to add to date here
// the problem below
book[i] = MediaItem[i];
}
return book;
}
您可以利用Java的泛型,但可能需要使用列表而不是数组,因为您无法在Java中创建泛型数组
class Book extends Media {}
class Media {
String borrower;
}
class Main {
public static void main(String[] args) {
List<Media> media = new ArrayList<>();
media.add(new Media());
media.add(new Book());
for (Media medium : media) {
System.out.println(medium.borrower);
}
}
}
类目扩展媒体{}
班级媒体{
借款者;
}
班长{
公共静态void main(字符串[]args){
List media=new ArrayList();
添加(新媒体());
添加(新书());
用于(媒体:媒体){
System.out.println(中等借款人);
}
}
}
它需要在一个数组中吗?为什么不使用列表?我想我知道我需要做什么,但我不知道如何将其放入代码中,首先是的,我希望它保持为一个数组,有人知道如何向下转换吗?还是向上看?
class Book extends Media {}
class Media {
String borrower;
}
class Main {
public static void main(String[] args) {
List<Media> media = new ArrayList<>();
media.add(new Media());
media.add(new Book());
for (Media medium : media) {
System.out.println(medium.borrower);
}
}
}